Method, device and equipment for visually editing workflow and medium
By supporting the free dragging of nodes across containers and automatic structure recognition in a visual workflow editing method, the bottleneck of node-container interaction in the existing technology is solved, the flexible movement of nodes between containers and the stability of the process structure are achieved, and the user operation experience and the flexibility of process modeling are improved.
Patent Information
- Application Number
- CN202510898123.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-30
- Publication Date
- 2025-10-17
AI Technical Summary
Existing visual workflow editors have technical bottlenecks in handling interactive operations between nodes and containers, making it difficult to meet the needs of complex process modeling and maintenance. They lack the function of freely dragging nodes in and out of containers, resulting in a poor interactive experience. In addition, when the container nesting level is deep, it is easy to destroy the process connection relationship.
A visual workflow editing method is provided that supports free dragging of nodes across containers, automatic structure recognition and relationship reconstruction. The collision between nodes and containers is detected through dragging operations, and the position relationship and parent-child relationship of nodes are updated to achieve flexible movement of nodes between containers and stability of process structure.
It improves user operation flexibility and process structure stability, supports free dragging of nodes between containers and automatic identification and reconstruction of relationships, and improves the interactive experience and flexibility of process modeling.
Smart Images

Figure CN120803436A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the field of computers, and more specifically, to a method, apparatus, device, computer-readable storage medium, and program product for visual editing of a workflow. BACKGROUND
[0002] In recent years, visual editing of a workflow technology has been widely used in business process automation. Through a graphical interface, a user can build a business process composed of multiple nodes without writing code, to realize sequential execution, branch control, parallel processing, and other logic of tasks. This way can reduce the development threshold and improve the flexibility and maintainability of the business.
[0003] In order to enhance the expressiveness of the workflow in complex business, a sub-canvas mechanism is introduced to support higher-level process organization and reuse. A sub-canvas (also called a container node or container) can be regarded as an independent process unit nested in the main canvas, and a number of sub-nodes can be added inside to help build a tree-shaped process structure. With the help of the sub-canvas, the workflow can support complex logic such as loops and batch processing. SUMMARY
[0004] In a first aspect of embodiments of the present disclosure, a method for visual editing of a workflow is provided. The method comprises: displaying a workflow comprising a first node and a second node, the first node and the second node having respective geometric shapes, the second node being a container node; determining, based on a dragging operation for the first node, a relative position relationship between the first node and the second node, the relative position relationship indicating whether the geometric shapes of the first node and the second node collide; and updating the first node and the second node in the workflow based on the determined relative position relationship.
[0005] In a second aspect of embodiments of the present disclosure, an apparatus for visual editing of a workflow is provided. The apparatus comprises: a display unit configured to display a workflow comprising a first node and a second node, the first node and the second node having respective geometric shapes, the second node being a container node; a position relationship determination unit configured to determine, based on a dragging operation for the first node, a relative position relationship between the first node and the second node, the relative position relationship indicating whether the geometric shapes of the first node and the second node collide; and a workflow update unit configured to update the first node and the second node in the workflow based on the determined relative position relationship.
[0006] In a third aspect of embodiments of the present disclosure, an electronic device is provided. The electronic device includes one or more processors; and a storage storing one or more programs, when executed by the one or more processors, cause the one or more processors to implement a method for visualizing editing a workflow. The method includes: displaying a workflow including a first node and a second node, the first node and the second node having respective geometric shapes, the second node being a container node; determining, based on a drag operation for the first node, a relative positional relationship between the first node and the second node, the relative positional relationship indicating whether the geometric shapes of the first node and the second node collide; and updating the first node and the second node in the workflow based on the determined relative positional relationship.
[0007] In a fourth aspect of embodiments of the present disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-transitory computer readable medium and includes machine executable instructions that, when executed, cause a machine to implement a method for visualizing editing a workflow. The method includes: displaying a workflow including a first node and a second node, the first node and the second node having respective geometric shapes, the second node being a container node; determining, based on a drag operation for the first node, a relative positional relationship between the first node and the second node, the relative positional relationship indicating whether the geometric shapes of the first node and the second node collide; and updating the first node and the second node in the workflow based on the determined relative positional relationship.
[0008] The summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF DRAWINGS
[0009] The above and other features, aspects and advantages of various embodiments of the present disclosure will become more apparent from the following detailed description, taken in conjunction with the accompanying drawings, in which like reference numerals denote like elements, and wherein:
[0010] Figure 1 A schematic diagram showing moving a node of a workflow into a container node by a drag operation is shown;
[0011] Figure 2 A schematic diagram showing moving a node out of a container node by a drag operation is shown;
[0012] Figure 3 A flowchart of a method for visualizing editing a workflow according to some embodiments of the present disclosure is shown;
[0013] Figure 4 A flowchart of a method of editing a workflow according to a drag operation is shown according to some embodiments of the present disclosure;
[0014] Figure 5 A schematic diagram of a coordinate transformation process is shown according to some embodiments of the present disclosure;
[0015] Figure 6 A block diagram of an apparatus for visualizing an editing workflow is shown according to some embodiments of the present disclosure; and
[0016] Figure 7 A block diagram of an apparatus capable of implementing multiple embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0017] It can be understood that all user-related data involved in the technical solution should be obtained and used after the user's authorization. This means that in the technical solution, if the user's personal information needs to be used, the user's explicit consent and authorization are required before obtaining these data, otherwise the relevant data collection and use will not be carried out. It should also be understood that in the implementation of the technical solution, relevant laws and regulations should be strictly followed in the collection, use and storage of data, and necessary technical and measures should be taken to protect the user's data security and ensure the safe use of data.
[0018] It can be understood that before using the technical solutions disclosed in the embodiments of the present disclosure, the type of personal information involved in the present disclosure, the scope of use, the use scenario, etc. should be informed to the user and the authorization of the user should be obtained through appropriate means according to relevant laws and regulations.
[0019] For example, when receiving the user's active request, the user is sent a prompt information to explicitly prompt the user that the operation he requests to perform will need to obtain and use the user's personal information. Thus, the user can voluntarily choose whether to provide personal information to the electronic device, application program, server or storage medium, etc. software or hardware that performs the operation of the technical solution of the present disclosure according to the prompt information.
[0020] As an optional but non-limiting implementation manner, in response to receiving the user's active request, the way of sending prompt information to the user may, for example, be the pop-up window manner, and the prompt information can be presented in the form of text in the pop-up window. In addition, the pop-up window can also carry selection controls for the user to select "agree" or "disagree" to provide personal information to the electronic device.
[0021] It can be understood that the above notification and user authorization process is only illustrative and does not limit the implementation of the present disclosure. Other ways that meet relevant laws and regulations can also be applied to the implementation of the present disclosure.
[0022] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is understood that the present disclosure can be embodied in various forms and should not be interpreted as being limited to the embodiments set forth herein, but rather, these embodiments are provided so that the present disclosure can be more thoroughly and completely understood. It is understood that the drawings of the present disclosure and the embodiments are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0023] In the description of embodiments of the present disclosure, the term "comprising" and its conjugations are to be understood as open-ended, i.e., "including but not limited to". The term "based on" is to be understood as "based, at least in part, on". The term "one embodiment" or "an embodiment" is to be understood as "at least one embodiment". The term "a first" or "the first" is to be understood as "at least one" or "one or more" unless otherwise explicitly stated. Other explicit and implicit definitions can also be included below.
[0024] In complex workflow scenarios, users often need to move nodes between different containers (also referred to as "sub-canvas") to adjust the process structure or optimize the business logic. However, existing mainstream visual workflow editors still have great technical bottlenecks in handling the interaction between nodes and containers, and it is difficult to meet the actual needs of complex process modeling and maintenance.
[0025] Specifically, the current technology has the following shortcomings: first, most editors only support manual addition or deletion of nodes within the container, and lack the function of freely dragging nodes in and out of the container, which limits the user's flexible adjustment of the process structure; second, the addition of nodes usually depends on preset button operations, and users cannot reconstruct the hierarchical relationship of nodes through intuitive drag-and-drop methods, resulting in poor interactive experience; in addition, in the scenario where the container nesting level is deep, the node movement process may cause the original process connection relationship and hierarchical structure to be destroyed, increasing the complexity of maintenance. In order to solve the above problems, the present application proposes a visual workflow editing method that supports free dragging of nodes across containers, automatic identification of structure, and reconstruction of relationships, thereby improving the flexibility of user operations and the stability of the process structure.
[0026] Figure 1 A schematic diagram according to an embodiment of the present application is shown, which shows the process of moving a node in a workflow to the inside of a container node through a drag operation. As shown in the figure, the main canvas 100 of the workflow is used to present and edit the node structure of the entire workflow. Illustratively, the main canvas includes node 110, node 120, and node 130, where node 130 is a container node. Node 110 and node 120 are at the same level as container node 130 and are both child nodes of main canvas 100, and thus can be considered as sibling nodes.
[0027] The nodes 110, 120, and 130 each have a corresponding geometric shape, such as a rectangle, for presentation in a graphical interface and to support user interaction operations, such as clicking, dragging, resizing, and the like. The node 110 is connected to the node 120 by a connection line 115, representing the output of the node 110 as the input of the node 120.
[0028] During operation, a user can select the node 110 by mouse click or touch, and perform a drag operation 102 to move the node 110 toward the container node 130. After the drag operation ends, the system detects whether the current geometric position of the node 110 is within the range of the container node 130, or in contact with or partially overlaps the geometric boundary of the node 130. If the above spatial determination condition is met, the node 110 is placed into the container node 130, as shown in Figure 1 The change not only appears as a visual adjustment of the node hierarchy relationship on the user interface, but also triggers a business logic update of the internal structure of the workflow. The node 110 is removed from the child node list of the main canvas and added as a child node of the container node 130, thereby causing changes in the execution logic and data flow relationship of the workflow. In some implementations, the original connection line 115 of the node 110 can be deleted.
[0029] In some implementations, each node can maintain a local transformation matrix to represent its geometric transformation relative to a parent node (such as the main canvas or a sub-canvas), including translation, rotation, and scaling, and the like. When the parent node of the node 110 changes, its local transformation matrix should also be updated to reflect the change in its position and attitude in the new coordinate system, ensuring consistency in the display and accuracy of the operation of the node in the user interface.
[0030] Figure 2 A diagram showing the removal of a node from a container node by a drag operation is shown. As shown in Figure 2 The node 110 is originally a child node of the container node 130 and is an element in the corresponding sub-canvas of the container node 130. A user can perform a drag operation 104 on the node 110 to remove it from the container node 130 and place it in the main canvas 100. In some embodiments, the operation can be distinguished from the drag operation 102 in Figure 1 by detecting a secondary key input by the user. For example, when the user performs the drag operation 104 while a specific secondary key (such as the Control key, or other configurable combination key) is triggered or pressed, the system identifies the operation as the type of "node removal from container".
[0031] In response to the end of the dragging operation 104, it is determined whether the node 110 has left the geometric boundary of the container node 130 or no longer intersects with it. After the preset determination condition is met, the system removes the node 110 from the child node list of the container node 130 and adds it as a child node of the main canvas 100. Similarly, the change of the parent-child relationship between nodes requires synchronous updating of the node hierarchy information and connection logic in the workflow data structure to ensure the semantic correctness of the process. In addition, when the parent node of the node 110 is switched from the container node 130 to the main canvas 100, its local transformation matrix will also be reset or adjusted to correctly reflect its geometric properties in the new coordinate system.
[0032] Figure 3 A flowchart of a method 300 for visualizing editing a workflow according to some embodiments of the present disclosure is shown. The method 300 can be performed by any electronic device with computing capability, for example, to implement moving a node of a workflow into or out of a container node by performing the method 300 when the device runs a workflow application. For ease of understanding, the method 300 will be described in conjunction with Figure 1 and Figure 2 It can be understood that the method 300 can include more steps, or some steps can be omitted.
[0033] At block 310, a workflow including a first node and a second node is displayed, the first node and the second node having respective geometric shapes, the second node being a container node. Referring to Figure 1 or Figure 2 , the first node can be the node 110 and the second node can be the node 130.
[0034] At block 320, based on a dragging operation for the first node, a relative positional relationship between the first node and the second node is determined, the relative positional relationship indicating whether the geometric shapes of the first node and the second node collide.
[0035] In some embodiments, the business logic for dragging a node into or out of a container node can be carried by an event listening module. Specifically, based on an event mechanism, the event listening module is responsible for listening to events such as start of dragging, during dragging, end of dragging, etc., and triggering corresponding processing logic. In some embodiments, the event listening module can trigger corresponding processing logic in conjunction with a state management module, a collision detection module, and a coordinate transformation module.
[0036] The state monitoring module is used to maintain various states during the dragging process, including the dragged node, the source container of the dragged node, the target container of the dragged node, etc., to ensure the consistency of the state of the workflow. The collision detection module implements the collision detection of the node and the container, and judges the effectiveness of the dragging operation. The coordinate transformation module maintains the local transformation matrix of each node or container, which is used to process the coordinate system conversion between multiple nested containers, and ensures the accurate calculation of the node position.
[0037] In some embodiments, the collision monitoring module uses the global coordinates (also known as "world coordinates") of the nodes and containers to calculate the relative position relationship of the nodes and containers, and to determine whether they collide. For example, each node and container has a respective local transformation matrix, and by using the nested hierarchical relationship, the world transformation matrix of the node or container can be calculated, and thus the global coordinates of the node and the container are obtained.
[0038] At block 330, based on the determined relative position relationship, the first node and the second node are updated in the workflow. In some embodiments, updating the first node 110 and the second node 130 can include rendering layer update and workflow business layer update. The rendering layer update includes moving the first node 110 into the second node 130 (as shown in Figure 1 ) or moving the first node 110 from inside to outside of the second node 130 (as shown in Figure 2 ) in the editing interface of the workflow. The business layer update includes updating the child node list of the source container and the target container of the first node 110, and updating the local transformation matrix of the first node.
[0039] Next, the scenarios of moving the node into the target container and moving the node out of the source container are described respectively.
[0040] Referring to Figure 1 , before the dragging operation 102, the first node 110 is displayed outside the second node 130, indicating that the rectangular boxes of the first node 110 and the second node 130 do not overlap or contact. As the dragging action 102 drags the first node 100 towards the second node 130, the collision detection module is used to detect the relative position relationship between the first node and the second node, i.e., whether the geometric shapes of the first node and the second node collide.
[0041] In some embodiments, the collision detection module can employ a rectangular bounding box based collision detection algorithm to perform the collision detection. Optionally, it can be determined whether the first node 110 is dragged into the second node 130 according to point-to-rectangular box collision detection. If it is detected that the position of the drag operation (e.g., the position of the mouse or touch point on the screen) is inside the second node 130, it is determined that the geometric shapes of the first node 110 and the second node 130 collide. Optionally, it can also be determined whether the first node 110 is dragged into the second node 130 according to a rectangular-to-rectangular collision detection algorithm. If it is detected that the geometric shapes of the first node 110 and the second node 130 overlap (at least partially overlap), it is determined that the geometric shapes of the first node 110 and the second node 130 collide.
[0042] During the dragging process, in order to facilitate the identification of the target container, once the collision is detected, the target container that collides with the first node 110 can be highlighted, for example, the bounding box of the target container is made to glow. In some embodiments, in response to detecting that the geometric shapes of the first node 110 and the second node 130 collide, the second node 130 is highlighted.
[0043] Since the container nodes of the workload can have a hierarchical relationship, during the dragging process, the first node 110 can collide with the geometric shapes of multiple nodes at the same time. In some embodiments, if it is detected that the first node collides with the geometric shapes of multiple nodes in the workflow, the node with the highest rendering level among the multiple nodes can be determined as the target container.
[0044] At the end of the drag operation 102, the first node 110 is moved into the second node 130. Specifically, updating the first node 110 and the second node 130 in the workflow can include, at the rendering layer, displaying the first node inside the second node 130; at the business layer, adding the first node to the child node list of the second node 130 as the target container. In some embodiments, the first node 110 is deleted from the child node list of the source container of the first node 110.
[0045] Since the container of the first node 110 changes, its local coordinates can also be updated accordingly. In some embodiments, based on the positions of the first node and the second node, the local coordinates of the first node are updated, the local coordinates indicating the position of the first node relative to the second node. As mentioned above, the local coordinates can be represented by the local transformation matrix of the node.
[0046] The following description describes a scenario of moving a node out of a source container.
[0047] Reference Figure 2Before the dragging operation, the first node 110 is inside the second node 130 and is a child node of the second node (i.e., the second node is a source container of the first node). During the dragging, if it is detected that there is no overlap between the geometrical shapes of the first node 110 and the second node 130 or the position of the dragging operation is outside the second node 130, it can be determined that the geometrical shapes of the first node 110 and the second node 130 do not collide. Similarly, if it is detected that the position of the dragging operation 104 is outside the second node 130, for example, the end position of the dragging operation 104 is outside the second node 130, it is determined that the geometrical shapes of the first node 110 and the second node 130 do not collide. Alternatively, it can also be determined whether the first node 110 has been moved out of the second node 130 according to the rectangle-rectangle collision detection algorithm. If it is detected that the geometrical shapes of the first node 110 and the second node 130 do not overlap, it is determined that the geometrical shapes of the first node 110 and the second node 130 do not collide.
[0048] The dragging operation 102 that moves a node into a container node and the dragging operation 104 that moves a node out of a container node can be distinguished. For example, either of the dragging operation 102 and the dragging operation 104 can be implemented as a combination of a predetermined key. Taking the dragging operation 104 as an example, in response to detecting the dragging operation 104 when a predetermined key (e.g., a Control key or other key) is triggered, the dragging operation 104 is determined as an operation for moving the first node out of the second node.
[0049] In some embodiments, in order to update the workflow, the first node is displayed outside the second node at the rendering layer. At the workflow business layer, the first node can be removed from the child node list of the second node. In other words, the second node is no longer the parent node of the first node. Accordingly, the parent node (i.e., the target container) of the first node can be re-determined, and the local coordinates of the first node are updated based on the position of the parent node and the position of the first node, where the local coordinates indicate the position of the first node relative to the parent node.
[0050] For the scenarios of node moving in and moving out, the child node list of the second node as a container node is all changed. In some embodiments, the child node list of the second node can be updated, and the geometrical shape of the second node is adjusted based on the positions and corresponding geometrical shapes of the child nodes in the updated child node list. In this way, adaptive adjustment of the boundary of the node is achieved.
[0051] In some embodiments, if the second node has its own parent node, when the geometrical shape of the second node changes, the geometrical shape of the parent node of the second node can be further updated based on the geometrical shape of the second node. In this way, adaptive adjustment of the boundary of the nested container node is achieved.
[0052] In some embodiments, to ensure the correct business logic relationship of the updated workflow, the connection of the first node can be deleted as the first node is moved, moved into the second node or moved out of the second node.
[0053] The node with the highest rendering level in the plurality of nodes is determined as the second node, the second node being the target container of the first node
[0054] Figure 4 A flow chart of a method 400 of editing a workflow according to a drag operation according to some embodiments of the present disclosure is shown. The method 400 can be considered as an exemplary implementation of the method 300.
[0055] At block 402, it is detected that a drag operation on a node in the workflow is started. Specifically, the event monitoring module continuously monitors the user's interaction behavior on the node, and when a mouse press and move or touch drag operation event is captured, it is determined that the user starts to perform the node drag.
[0056] At block 404, it is determined whether a predetermined key is triggered. The key is used to distinguish the user's current drag intention: if the key is in the triggered state, it means that the user intends to drag the node out of the container; otherwise, if the key is not triggered, it can be confirmed that the user's intention is to drag the node into the container.
[0057] If it is determined that the predetermined key is triggered, i.e., there is a combination of the drag operation and the predetermined key, the method 400 proceeds to block 406 to determine whether the node of the drag operation can be dragged out of the container. For example, the collision detection module can be used to determine whether the node has been moved out of the parent node container. If so, the method 400 proceeds to block 408 to move the node out of the container and re-drag (if necessary).
[0058] If it is determined at block 404 that the predetermined key is not triggered, the method 400 proceeds to block 410. At block 410, the dragged node and the parent node (i.e., the source container)
[0059] At block 412, during the drag operation, the position of the drag operation or the rectangular box position of the first node is calculated to
[0060] for real-time determination of whether a collision occurs.
[0061] At block 414, it is determined whether the first node collides with the container. If a collision occurs, the method 400 proceeds to block 416. At block 416, the target container is set. For example, if only one node collides, the node is set as the target container, and if multiple nodes collide simultaneously, the node with the highest rendering level is set as the target container.
[0062] At block 418, it is determined that the node is placed into the target container. For example, the event detection module can determine that the drag is terminated and record the termination position of the drag operation. In response, the node can be placed inside the node corresponding to the target container at the rendering layer.
[0063] At block 420, the connection is cleaned up. Since the node has been migrated from the parent node to the new container, the old data flow or control flow connection can no longer be applicable, so the system can delete the old connection associated with the node, ready for new flow logic reconstruction.
[0064] At block 422, an update event is triggered to maintain the consistency of the flow structure and the display state. This step can include, but is not limited to: updating the source container and the target container of the node, updating the local coordinates of the dragged node, and adaptively adjusting the geometry of the source node, the target node, and their parent nodes, etc.
[0065] Figure 5 A schematic diagram of a coordinate transformation process 500 is shown according to some embodiments of the present disclosure. As shown, the coordinate transformation process 500 involves a dragged node 510, a source container 520, a target container 530, and a coordinate system 540. Each node and container node maintains its own local transformation matrix in the graphics system, which is used to describe its geometric transformation properties relative to the parent node (usually its container), including translation, scaling, and rotation.
[0066] When the user drags the node 510 from the source container 520 to the target container 530 and completes the drag-and-drop operation, the system will perform the process 500 to achieve coordinate recalculation and transformation update.
[0067] At step S51, a request is initiated to the coordinate system 540 to obtain the world coordinates of the currently dragged node 510. The world coordinates refer to the absolute position of the node in the entire canvas space, which is different from its relative position in the nested container and is determined by the hierarchical transformation of its parent container and its ancestor nodes.
[0068] At step S52, the coordinate system 540 responds to the request and returns the world transformation matrix of the node 510. The matrix is usually calculated based on the concatenation (i.e., matrix multiplication) of the local transformation matrices of all parent nodes in the node's hierarchical path, thereby restoring the final position and transformation state of the node in the global coordinate system.
[0069] Subsequently, at step S53, the world coordinates of the target container 530 are further requested. Similar to the node 510, the world transformation matrix of the target container is also calculated by combining the local transformations of its ancestor nodes.
[0070] At step S54, the coordinate system 540 returns the world transformation matrix of the target container 530 for subsequent calculation. Steps S53 and S54 are similar to the operation mode of steps S51 and S52, both of which are from the node hierarchy structure, and obtain the global coordinate information through the transformation matrix cascade.
[0071] Next, at step S55, the system initiates a request to the coordinate system 540 according to the obtained world coordinates of the dragged node 510 and the world coordinates of the target container 530, and calculates the relative coordinate relationship between the two.
[0072] At step S56, the system returns the above calculation result as the new local coordinates of the node 510 relative to the target container 530.
[0073] At step S57, the target container 530 sets the calculated local coordinates as the new position of the node 510. This local coordinate can be represented by a local transformation matrix, and is used as the new layout basis of the node 510 to realize its correct rendering and interaction in the target container coordinate system.
[0074] The above reference Figures 1 to 5 Exemplary embodiments of the present disclosure are described, which provide a visual workflow editing method supporting node cross-container free dragging, structure automatic identification and relationship reconstruction. Compared with the prior art, the scheme of the present disclosure improves the flexibility of user operation and the stability of the process structure.
[0075] Figure 6 A device 600 for visual editing of a workflow is shown according to some embodiments of the present disclosure. As shown, the device 600 includes a display unit 610, a position relationship determination unit 620, and a workflow updating unit 630.
[0076] The display unit 610 is configured to display a workflow including a first node and a second node, the first node and the second node having respective geometric shapes, and the second node being a container node. The position relationship determination unit 620 is configured to determine, based on a dragging operation for the first node, a relative position relationship between the first node and the second node, the relative position relationship indicating whether the geometric shapes of the first node and the second node collide. The workflow updating unit 630 is configured to update the first node and the second node in the workflow based on the determined relative position relationship. The device 600 can also be implemented according to more units to realize the method or process described in the reference Figures 3 to 5 Each step of the method or process described.
[0077] Figure 7 A block diagram of a device 700 capable of implementing a plurality of embodiments of the present disclosure is shown. As Figure 7As shown, the device 700 includes a computing unit 701, which can include a central processing unit (CPU) and / or a graphics processing unit (GPU), and can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 702 or loaded into a random access memory (RAM) 703 from a storage unit 708. Various programs and data required for operation of the device 700 can also be stored in the RAM 703. The computing unit 701, the ROM 702, and the RAM 703 are connected to each other through a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704. Although not shown in the figure, the device 700 can include a plurality of I / O interfaces 705 as needed. Figure 7 The device 700 can further include a coprocessor, although not shown in the figure.
[0078] A plurality of components in the device 700 are connected to the I / O interface 705, including an input unit 706, such as a keyboard, a mouse, and the like; an output unit 707, such as various types of displays, speakers, and the like; a storage unit 708, such as a magnetic disk, a magneto-optical disk, and the like; and a communication unit 709, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 709 allows the device 700 to exchange information / data with other devices through a computer network, such as the Internet, and / or various telecommunication networks.
[0079] The various methods or processes described above can be performed by the computing unit 701. For example, in some embodiments, the methods can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 708. In some embodiments, part or all of the computer program can be loaded and / or installed on the device 700 via the ROM 702 and / or the communication unit 709. When the computer program is loaded into the RAM 703 and executed by the computing unit 701, one or more steps or actions of the methods or processes described above can be performed.
[0080] In some embodiments, the methods and processes described above can be implemented as a computer program product. The computer program product can include a computer readable storage medium having computer readable program instructions embodied therewith to perform various aspects of the disclosure.
[0081] A computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
[0082] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0083] The computer program instructions for performing the disclosed operation can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data or source code or the object code written in any combination of one or more programming languages, programming languages include object-oriented programming languages, and conventional procedural programming languages.Computer-readable program instructions can be performed completely on a user's computer, partially on a user's computer, performed as an independent software package, partly on a user's computer and partly on a remote computer, or performed completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer by any type of network-including local area network (LAN) or wide area network (WAN), or can be connected to an external computer (such as utilizing an internet service provider to connect by the internet). In certain embodiments, by utilizing the state information of computer-readable program instructions to carry out personalized customization electronic circuits, such as programmable logic circuits, field programmable gate arrays (FPGAs) or programmable logic arrays (PLA), this electronic circuit can perform computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0084] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0085] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0086] The computer program product of the second aspect can include a computer readable storage medium. The computer readable storage medium can include instructions. The instructions can include one or both of: instructions for causing a computer to enable a user equipment device to receive a configuration message from a base station, the configuration message comprising an indication of a set of one or more parameters for a first type of hybrid automatic repeat request process, the first type of hybrid automatic repeat request process being associated with a first type of data; and instructions for causing a computer to enable a user equipment device to receive a configuration message from a base station, the configuration message comprising an indication of a set of one or more parameters for a first type of hybrid automatic repeat request process, the first type of hybrid automatic repeat request process being associated with a first type of data.
[0087] Embodiments of the present disclosure have been described above, with the understanding that these embodiments are exemplary only, and are not restrictive, and are not limited to the disclosed embodiments. Many modifications and changes to the described embodiments are possible, without departing from the scope and spirit of the described embodiments. The selection of terms to be used herein is intended to best explain the principles of the embodiments, practical application, or technical improvement over the technology in the market, or to enable other ordinary skilled persons in the art to understand the embodiments disclosed herein.
Claims
1. A method for visually editing a workflow, comprising: displaying a workflow including a first node and a second node, the first node and the second node having corresponding geometric shapes, the second node being a container node; determining, based on a drag operation on the first node, a relative positional relationship between the first node and the second node, the relative positional relationship indicating whether the geometric shapes of the first node and the second node collide; as well as Based on the determined relative position relationship, the first node and the second node are updated in the workflow.
2. The method according to claim 1, wherein Before the dragging operation, the first node is displayed outside the second node, and based on the dragging operation on the first node, determining the relative positional relationship between the first node and the second node includes: In response to detecting that the geometric shapes of the first node and the second node overlap or the position of the drag operation is inside the second node, it is determined that the geometric shapes of the first node and the second node collide.
3. The method according to claim 2, further comprising: In response to detecting a collision between the geometric shapes of the first node and the second node, the second node is highlighted.
4. The method according to claim 2, further comprising: detecting a collision between the first node and a plurality of nodes in the workflow; as well as A node with the highest rendering level among the multiple nodes is determined as a target container.
5. The method according to claim 2, wherein: Updating the first node and the second node in the workflow includes: displaying the first node within the second node; and Add the first node to the child node list of the second node.
6. The method according to claim 2, wherein: Updating the first node and the second node in the workflow further includes: Based on the positions of the first node and the second node, local coordinates of the first node are updated, the local coordinates indicating the position of the first node relative to the second node.
7. The method according to claim 1, wherein Before the drag operation, the first node is inside the second node and is a child node of the second node, and based on the drag operation on the first node, determining the relative positional relationship between the first node and the second node includes: In response to detecting that there is no overlap between the geometric shapes of the first node and the second node or that the location of the drag operation is outside the second node, it is determined that the geometric shapes of the first node and the second node do not collide.
8. The method according to claim 7, further comprising: In response to detecting the drag operation when a predetermined key is triggered, the drag operation is determined as an operation for moving the first node out of the second node.
9. The method according to claim 7, wherein: Updating the first node and the second node in the workflow includes: displaying the first node outside the second node; and The first node is removed from the child node list of the second node.
10. The method according to claim 1, wherein Updating the first node and the second node in the workflow further includes: re-determining the parent node of the first node; and Based on the position of the parent node and the position of the first node, local coordinates of the first node are updated, the local coordinates indicating the position of the first node relative to the parent node.
11. The method according to claim 1, wherein Updating the first node and the second node in the workflow includes: Updating the child node list of the second node; and The geometric shape of the second node is adjusted based on the positions and corresponding geometric shapes of the child nodes in the updated child node list.
12. The method according to claim 11, further comprising: Based on the adjusted geometry of the second node, the geometry of the parent node of the second node is updated.
13. The method according to claim 1, further comprising: In response to the first node being moved into or out of the second node, a link of the first node is deleted.
14. A device for visually editing a workflow, comprising: A display unit configured to display a workflow including a first node and a second node, wherein the first node and the second node have corresponding geometric shapes, and the second node is a container node; a positional relationship determining unit configured to determine a relative positional relationship between the first node and the second node based on a drag operation on the first node, the relative positional relationship indicating whether the geometric shapes of the first node and the second node collide; as well as The workflow updating unit is configured to update the first node and the second node in the workflow based on the determined relative position relationship.
15. An electronic device comprising: processor; as well as A memory coupled to the processor, the memory having instructions stored therein, wherein when the instructions are executed by the processor, the electronic device performs the method according to any one of claims 1 to 13.
16. A computer-readable storage medium having computer-executable instructions stored thereon, wherein the computer-executable instructions are executed by a processor to implement the method according to any one of claims 1 to 13.