Saas procurement method and system based on multi-user isolation and individualized configuration
Patent Information
- Application Number
- CN202610904567.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-06-23
- Publication Date
- 2026-09-22
AI Technical Summary
然而,此类技术手段在实际应用中存在明显不足:在隔离层面,多数系统仅支持单一租户级的逻辑隔离,缺乏针对同一租户内不同子公司、事业部或数据合规域所需的物理隔离、网络隔离及计算资源隔离能力,难以满足金融、政务等场景的严格安全合规要求,且共享资源模式下易出现“吵邻”现象;在个性化配置层面,现有配置主要局限于用户界面显示与简单流程顺序的调整,无法深入至数据模型扩展、复杂业务规则编排、多维度动态审批矩阵及跨系统集成映射等深度定制,导致企业复杂的采购策略难以落地,且配置与代码耦合紧密,系统升级时常导致定制功能失效,升级成本高昂
[0015]与现有技术相比,本发明的有益效果是:通过构建多维隔离引擎,突破了传统单一租户级逻辑隔离的局限,能够根据租户的组织架构、数据合规要求、安全等级等信息动态分配物理服务器资源、独立数据库实例、计算资源配额、虚拟私有网络及独立应用命名空间,实现了物理隔离、数据隔离、计算隔离、网络隔离与应用隔离的多维度可组合隔离,满足了金融、政务等场景对严格安全合规及资源独立保障的需求,有效避免了共享资源环境下的“吵邻”问题;同时,通过构建深度个性化配置引擎,支持从数据模型层、业务规则层、流程层、用户界面层到集成层的全栈无代码配置,使租户能够自定义实体与字段、编排复杂业务规则、配置多维度动态审批矩阵、定制界面布局及定义外部系统集成映射,实现了与业务代码完全解耦的热加载配置,在系统升级时无需重新适配定制功能,大幅降低了升级成本,确保企业复杂采购策略能够精准落地。
Smart Images

Figure CN122802207A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of SaaS procurement technology, specifically to a SaaS procurement method and system based on multi-user isolation and personalized configuration. Background Technology
[0002] Existing SaaS procurement systems generally adopt a multi-tenant architecture with shared databases or shared schemas. They achieve row-level data logical isolation through tenant identifiers and provide basic configuration capabilities such as form fields, workflows, and role permissions through metadata-driven approaches. They also integrate with external systems via API gateways. However, these technologies have significant shortcomings in practical applications: At the isolation level, most systems only support logical isolation at the single-tenant level, lacking the physical, network, and computing resource isolation capabilities required for different subsidiaries, business units, or data compliance domains within the same tenant. This makes it difficult to meet the stringent security and compliance requirements of scenarios such as finance and government, and the shared resource model is prone to "neighborly interference." At the personalized configuration level, existing configurations are mainly limited to user interface display and simple process sequence adjustments, failing to delve into deep customization such as data model expansion, complex business rule orchestration, multi-dimensional dynamic approval matrices, and cross-system integration mapping. This makes it difficult to implement complex enterprise procurement strategies, and the tight coupling between configuration and code often leads to the failure of customized functions during system upgrades, resulting in high upgrade costs.
[0003] Therefore, we have made improvements to this by proposing a SaaS procurement method and system based on multi-user isolation and personalized configuration. Summary of the Invention
[0004] The purpose of this invention is to provide a SaaS procurement method and system based on multi-user isolation and personalized configuration, so as to solve the problems mentioned in the background art.
[0005] To achieve the above objectives, the present invention provides the following technical solution: The process includes the following steps: receiving a tenant registration request and obtaining the tenant's organizational structure information, business scale information, data compliance requirement information, and security level information; determining the tenant's isolation strategy based on the obtained information, wherein the isolation strategy includes physical isolation strategy, data isolation strategy, computing isolation strategy, network isolation strategy, and application isolation strategy; allocating isolation resources to the tenant according to the isolation strategy, wherein the isolation resources include physical server resources, database instance resources, computing resource quotas, virtual private network resources, and microservice instance resources; constructing a configuration repository for the tenant to store the tenant's personalized configuration data, wherein the personalized configuration data includes data model configuration data, business rule configuration data, process configuration data, user interface configuration data, and integration configuration data; receiving configuration instructions sent by the tenant through the configuration workbench, generating or updating the personalized configuration data according to the configuration instructions, storing it in the configuration repository, and generating... Configure version number; when a tenant initiates a procurement request, read the tenant's latest personalized configuration data from the configuration repository and load it into memory; dynamically render the procurement operation interface based on the loaded personalized configuration data, the interface including custom form fields, custom menu structure, and custom list view; receive user-inputted business data and validate the business data according to business rule configuration data; start a procurement business process instance based on the validated business data according to the process configuration data, the process instance including custom workflow nodes, approver nodes, conditional branch nodes, parallel nodes, and countersigning nodes; dynamically calculate the approver of the next process node according to the business rule configuration data during the process instance's execution; when the process instance flows to the integration node, send the business data to the external system through the interface according to the integration configuration data; record the operation log of each node of the process instance and store it in association with the business data.
[0006] As a preferred technical solution of this application, the physical isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on security level information; the data isolation strategy includes allocating independent database instances, independent database modes within shared database instances, or row-level isolation strategies within shared database modes to tenants based on security level information and data compliance requirements. The row-level isolation strategy includes setting a tenant identifier field in the data table, creating a row-level security policy to ensure that query results only contain data rows matching the current tenant identifier, creating a row-level insertion policy to automatically write the tenant identifier, and creating a row-level update policy to verify the consistency of the tenant identifier; the computational isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on security level information and data compliance requirements. The performance service level information sets CPU resource limits and memory resource limits for tenant container instances, schedules container instances to a designated node pool using container orchestration tools, and sets traffic limiting thresholds using the service mesh component. The network isolation strategy includes allocating independent virtual private clouds to tenants, configuring subnets, routing tables, and access control lists, enabling bidirectional transport layer security authentication for inter-microservice communication through the service mesh component, and configuring independent network policies. The application isolation strategy includes allocating independent application namespaces to different organizational units within a tenant, configuring different application function on / off states through the feature switch component, and routing requests to the corresponding microservice instance groups based on the organizational unit identifier in the request header through the microservice gateway component.
[0007] As a preferred technical solution of this application, the data model configuration data includes custom entity definitions, custom field definitions, custom index definitions, and custom relationship definitions; the business rule configuration data includes rule name, rule triggering conditions, and rule execution actions, wherein the rule triggering conditions include conditional expressions, and the rule execution actions include data field assignment actions, data validation failure prompt actions, approval node append actions, notification message sending actions, and external system call actions; the process configuration data includes process definition files, process node configurations, node order configurations, and node jump condition configurations, wherein the process nodes include manual task nodes, automatic service nodes, conditional branch nodes, parallel branch nodes, convergence nodes, and sub-process nodes, wherein the manual task node configuration includes task name, task form identifier, candidate approver list, approval type, and approval time limit, and the candidate approver list includes static approver identifier and dynamic approver expression; the user interface configuration data includes menu tree structure configuration, page layout configuration, form component configuration, list view configuration, and report template configuration; the integration configuration data includes external system connection configuration, interface mapping configuration, data conversion script configuration, synchronization triggering condition configuration, and exception handling configuration.
[0008] As a preferred technical solution of this application, after generating and updating personalized configuration data, the configuration version number is compared with the previous version number. If there is a change, a configuration change message is sent to the configuration change notification topic in the configuration repository. The message includes the tenant identifier, configuration type identifier, and configuration version number. When reading the latest personalized configuration data from the configuration repository, the configuration change notification topic is listened to. After receiving the configuration change message, the corresponding personalized configuration data is reread according to the tenant identifier and configuration type identifier, updated to memory, and the previous memory data is marked as invalid.
[0009] As a preferred technical solution of this application, when starting a procurement business process instance, a globally unique process instance identifier is assigned to the process instance and stored in association with business data. The initial node of the process instance is generated according to the process definition file, and the current node status, the list of pending tasks, and the historical records of completed nodes are stored in the database. The custom workflow node includes setting the node type, node name, node handler, and node processing time limit. The node processing time limit includes a fixed duration limit and a calendar time limit. After the time limit expires, the node is automatically approved, automatically rejected, a timeout alarm is sent, or the timeout is escalated to the superior handler.
[0010] As a preferred technical solution of this application, dynamically calculating the approver of the next process node includes: obtaining the node configuration information of the current process node, parsing the approver expression therein, querying the list of user identifiers that meet the conditions from the organizational structure service when the approver expression is an organizational structure positioning expression, querying the list of user identifiers that meet the role conditions from the permission service when the expression is a role positioning expression, obtaining the initiator identifier from the business data and querying the initiator's superior, department head or project leader from the organizational structure service when the expression is a relationship positioning expression, and using the queried list of user identifiers as the candidate approver list.
[0011] As a preferred technical solution of this application, business data is sent to an external system through an interface. Based on the synchronization trigger condition configuration, it is determined whether the current business operation meets the trigger condition. If it does, the business data is converted into the target interface parameter format according to the interface mapping configuration. Format conversion, unit conversion, or encoding conversion is performed according to the data conversion script configuration. A network connection is established according to the external system connection configuration. The converted business data is sent to the external system interface address, and response data is received. According to the exception handling configuration, a retry operation or degradation operation is performed when the sending fails or the response is abnormal.
[0012] The SaaS procurement system based on multi-user isolation and personalized configuration includes the following modules: a tenant management module, used to receive tenant registration requests and obtain tenant organizational structure information, business scale information, data compliance requirement information, and security level information; an isolation policy determination module, connected to the tenant management module, used to determine the tenant's isolation policy based on the obtained information; a resource allocation module, connected to the isolation policy determination module, used to allocate isolation resources to tenants according to the isolation policy; a configuration repository module, used to store tenants' personalized configuration data; a configuration management module, connected to the configuration repository module, used to receive tenants' configuration instructions, generate or update personalized configuration data, and generate configuration version numbers; and a configuration loading module, connected to the configuration repository module, used to read the latest configuration data when a tenant initiates a procurement request. The system includes: a personalized configuration data module and a configuration loading module; an interface rendering module, connected to the configuration loading module, used to dynamically render the procurement business operation interface based on the user interface configuration data; a data verification module, connected to the configuration loading module, used to verify business data based on business rule configuration data; a process engine module, connected to the configuration loading module and the data verification module, used to start the procurement business process instance based on the process configuration data; an approver calculation module, connected to the process engine module and the configuration loading module, used to dynamically calculate the approver for the next process node; an integration adaptation module, connected to the process engine module and the configuration loading module, used to send business data to external systems based on integration configuration data; and a log recording module, connected to the process engine module, used to record operation logs and store them in association with business data.
[0013] As a preferred technical solution of this application, the resource allocation module includes: a physical resource allocation unit, used to allocate physical server nodes or container node pools according to a physical isolation policy; a database resource allocation unit, used to allocate database instances, independent database modes, or row-level isolated data tables according to a data isolation policy; a computing resource allocation unit, used to set the resource upper limit of container instances and schedule them to a specified node pool according to a computing isolation policy; a network resource allocation unit, used to allocate virtual private clouds and configure subnets, routing tables, and access control lists according to a network isolation policy; and an application resource allocation unit, used to allocate application namespaces and configure feature switches according to an application isolation policy. The configuration management module includes: a data model configuration unit, a business rule configuration unit, a process configuration unit, an interface configuration unit, an integration configuration unit, and a version management unit. The configuration loading module includes: a change listening unit, used to listen to configuration change notification topics and receive configuration change messages; a data reading unit, used to reread personalized configuration data according to configuration change messages; a memory caching unit, used to store personalized configuration data and update the cache according to the reread data; and a local caching unit, used to provide local caching when data cannot be read from the configuration repository.
[0014] As a preferred technical solution of this application, the process engine module includes: a process instance creation unit, used to create process instances and assign globally unique process instance identifiers; a node instantiation unit, used to create node instances according to process node configurations; a pending task generation unit, used to generate pending task records for manual task nodes based on a candidate approver list; a task distribution unit, used to distribute pending task records to the task lists of corresponding candidate approvers; and a process driving unit, used to receive processing operations and drive the process instance to the next node. The approver calculation module includes: an expression parsing unit, used to parse approver expressions and identify expression types; an organizational structure query unit, used to query a list of user identifiers that meet organizational structure conditions; a role query unit, used to query a list of user identifiers that meet role conditions; a relationship query unit, used to query the initiator's superior, department head, or project leader; and a result aggregation unit, used to aggregate the queried user identifier list into a candidate approver list and remove duplicates. The configuration module includes: a condition judgment unit, a data conversion unit, a connection establishment unit, a data sending unit, a response receiving unit, and an exception handling unit. The system also includes: a data encryption module for encrypting and storing encrypted fields in business data based on field encryption identifiers; a key management module for generating and storing independent encryption keys for each tenant; a data decryption module for obtaining the corresponding tenant's decryption key and decrypting business data; a cross-tenant authorization module for receiving authorization requests from the first tenant, generating authorization tokens, and sending them to the target tenant; a cross-tenant access control module for receiving resource access requests from the target tenant, verifying the authorization token, and allowing or denying access; a configuration canary release module for applying a specified configuration version only to users within the canary release range according to the canary release instruction, and applying it to all users when the full release time arrives; and a configuration rollback module for receiving configuration rollback instructions, reading the configuration data of the rollback target version number to replace the currently effective configuration data, and sending a configuration rollback message.
[0015] Compared with existing technologies, the beneficial effects of this invention are as follows: By constructing a multi-dimensional isolation engine, it breaks through the limitations of traditional single-tenant-level logical isolation. It can dynamically allocate physical server resources, independent database instances, computing resource quotas, virtual private networks, and independent application namespaces based on tenant organizational structure, data compliance requirements, security levels, and other information. This achieves multi-dimensional composable isolation of physical isolation, data isolation, computing isolation, network isolation, and application isolation, meeting the needs of financial, government, and other scenarios for strict security compliance and independent resource protection, and effectively avoiding the "noisy neighbor" problem in shared resource environments. At the same time, by constructing a deep personalized configuration engine, it supports full-stack no-code configuration from the data model layer, business rule layer, process layer, user interface layer to the integration layer. This allows tenants to customize entities and fields, orchestrate complex business rules, configure multi-dimensional dynamic approval matrices, customize interface layouts, and define external system integration mappings. It achieves hot-loading configuration that is completely decoupled from business code. When upgrading the system, there is no need to re-adapt customized functions, which greatly reduces upgrade costs and ensures that complex enterprise procurement strategies can be accurately implemented. Attached Figure Description
[0016] Figure 1 This is a block diagram of the overall structure of the present invention. Detailed Implementation
[0017] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0018] This invention provides a technical solution: such as Figure 1The SaaS procurement method based on multi-user isolation and personalized configuration, as shown, includes the following steps: receiving tenant registration requests and obtaining tenant organizational structure information, business scale information, data compliance requirement information, and security level information; determining the tenant's isolation strategy based on the obtained information, wherein the isolation strategy includes physical isolation strategy, data isolation strategy, computing isolation strategy, network isolation strategy, and application isolation strategy; allocating isolation resources to the tenant according to the isolation strategy, wherein the isolation resources include physical server resources, database instance resources, computing resource quotas, virtual private network resources, and microservice instance resources; constructing a configuration repository for the tenant to store the tenant's personalized configuration data, wherein the personalized configuration data includes data model configuration data, business rule configuration data, process configuration data, user interface configuration data, and integration configuration data; receiving configuration instructions sent by the tenant through the configuration workbench, and generating or updating the personalized configuration according to the configuration instructions. Data is stored in a configuration repository and a configuration version number is generated. When a tenant initiates a procurement request, the latest personalized configuration data for that tenant is read from the configuration repository and loaded into memory. The procurement operation interface is dynamically rendered based on the loaded personalized configuration data. The interface includes custom form fields, a custom menu structure, and a custom list view. The system receives business data input by the user and validates the business data according to the business rule configuration data. Based on the process configuration data, a procurement process instance is started for the validated business data. The process instance includes custom workflow nodes, approver nodes, conditional branch nodes, parallel nodes, and countersigning nodes. During the execution of the process instance, the approver for the next process node is dynamically calculated based on the business rule configuration data. When the process instance flows to the integration node, the business data is sent to the external system through an interface according to the integration configuration data. The system records the operation logs of each node in the process instance and stores them in association with the business data.
[0019] Furthermore, the physical isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on security level information; the data isolation strategy includes allocating independent database instances, independent database modes within shared database instances, or row-level isolation strategies within shared database modes to tenants based on security level information and data compliance requirements. The row-level isolation strategy includes setting a tenant identifier field in the data table, creating a row-level security policy to ensure that query results only contain data rows matching the current tenant identifier, creating a row-level insert policy to automatically write the tenant identifier, and creating a row-level update policy to verify the consistency of the tenant identifier; the computational isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on business scale information and performance service requirements. The tier information sets CPU and memory resource limits for tenant container instances, schedules container instances to a designated node pool using container orchestration tools, and sets traffic limiting thresholds using the service mesh component. The network isolation strategy includes allocating independent virtual private clouds to tenants, configuring subnets, routing tables, and access control lists, enabling bidirectional transport layer security authentication for inter-microservice communication through the service mesh component, and configuring independent network policies. The application isolation strategy includes allocating independent application namespaces to different organizational units within a tenant, configuring different application function on / off states using a feature switch component, and routing requests to the corresponding microservice instance groups based on the organizational unit identifier in the request header using the microservice gateway component.
[0020] Furthermore, the data model configuration data includes custom entity definitions, custom field definitions, custom index definitions, and custom relationship definitions; the business rule configuration data includes rule names, rule triggering conditions, and rule execution actions, whereby the rule triggering conditions include conditional expressions, and the rule execution actions include data field assignment actions, data validation failure prompt actions, approval node append actions, notification message sending actions, and external system call actions; the process configuration data includes process definition files, process node configurations, node order configurations, and node jump condition configurations, whereby the process nodes include manual task nodes, automatic service nodes, conditional branch nodes, parallel branch nodes, convergence nodes, and sub-process nodes, and the manual task node configuration includes task name, task form identifier, candidate approver list, approval type, and approval time limit, and the candidate approver list includes static approver identifiers and dynamic approver expressions; the user interface configuration data includes menu tree structure configuration, page layout configuration, form component configuration, list view configuration, and report template configuration; and the integration configuration data includes external system connection configuration, interface mapping configuration, data conversion script configuration, synchronization triggering condition configuration, and exception handling configuration.
[0021] Furthermore, after generating and updating personalized configuration data, the configuration version number is compared with the previous version number. If a change is found, a configuration change message is sent to the configuration change notification topic in the configuration repository. The message includes the tenant identifier, configuration type identifier, and configuration version number. When reading the latest personalized configuration data from the configuration repository, the system listens for the configuration change notification topic. Upon receiving the configuration change message, the system rereads the corresponding personalized configuration data based on the tenant identifier and configuration type identifier, updates it to memory, and marks the previous memory data as invalid.
[0022] Furthermore, when initiating a procurement business process instance, a globally unique process instance identifier is assigned to the process instance and stored in association with business data. The initial node of the process instance is generated according to the process definition file, and the current node status, the list of pending tasks, and the historical records of completed nodes are stored in the database. The custom workflow node includes setting the node type, node name, node handler, and node processing time limit. The node processing time limit includes a fixed duration limit and a calendar time limit. After the time limit expires, the node is automatically approved, automatically rejected, a timeout alarm is sent, or the timeout is escalated to the superior handler.
[0023] Furthermore, dynamically calculating the approver for the next process node includes: obtaining the node configuration information of the current process node, parsing the approver expression therein, querying the list of user identifiers that meet the conditions from the organizational structure service when the approver expression is an organizational structure positioning expression, querying the list of user identifiers that meet the role conditions from the permission service when the expression is a role positioning expression, and obtaining the initiator identifier from the business data and querying the initiator's superior, department head, or project leader from the organizational structure service when the expression is a relationship positioning expression, and using the queried list of user identifiers as the candidate approver list.
[0024] Furthermore, business data is sent to an external system via an interface. Based on the synchronization trigger condition configuration, it is determined whether the current business operation meets the trigger condition. If it does, the business data is converted into the target interface parameter format according to the interface mapping configuration. Format conversion, unit conversion, or encoding conversion is performed according to the data conversion script configuration. A network connection is established according to the external system connection configuration. The converted business data is sent to the external system interface address, and response data is received. According to the exception handling configuration, retry operation or degradation operation is performed when sending fails or the response is abnormal.
[0025] The SaaS procurement system based on multi-user isolation and personalized configuration includes the following modules: a tenant management module, used to receive tenant registration requests and obtain tenant organizational structure information, business scale information, data compliance requirement information, and security level information; an isolation policy determination module, connected to the tenant management module, used to determine the tenant's isolation policy based on the obtained information; a resource allocation module, connected to the isolation policy determination module, used to allocate isolation resources to tenants according to the isolation policy; a configuration repository module, used to store tenants' personalized configuration data; a configuration management module, connected to the configuration repository module, used to receive tenants' configuration instructions, generate or update personalized configuration data, and generate configuration version numbers; and a configuration loading module, connected to the configuration repository module, used to read the latest configuration data when a tenant initiates a procurement request. The system includes: a personalized configuration data module and a configuration loading module; an interface rendering module, connected to the configuration loading module, used to dynamically render the procurement business operation interface based on the user interface configuration data; a data verification module, connected to the configuration loading module, used to verify business data based on business rule configuration data; a process engine module, connected to the configuration loading module and the data verification module, used to start the procurement business process instance based on the process configuration data; an approver calculation module, connected to the process engine module and the configuration loading module, used to dynamically calculate the approver for the next process node; an integration adaptation module, connected to the process engine module and the configuration loading module, used to send business data to external systems based on integration configuration data; and a log recording module, connected to the process engine module, used to record operation logs and store them in association with business data.
[0026] Furthermore, the resource allocation module includes: a physical resource allocation unit, used to allocate physical server nodes or container node pools according to physical isolation policies; a database resource allocation unit, used to allocate database instances, independent database modes, or row-level isolated data tables according to data isolation policies; a computing resource allocation unit, used to set the resource upper limit of container instances and schedule them to designated node pools according to computing isolation policies; a network resource allocation unit, used to allocate virtual private clouds and configure subnets, routing tables, and access control lists according to network isolation policies; and an application resource allocation unit, used to allocate application namespaces and configure feature switches according to application isolation policies. The configuration management module includes: a data model configuration unit, a business rule configuration unit, a process configuration unit, an interface configuration unit, an integration configuration unit, and a version management unit. The configuration loading module includes: a change listening unit, used to listen to configuration change notification topics and receive configuration change messages; a data reading unit, used to reread personalized configuration data according to configuration change messages; a memory caching unit, used to store personalized configuration data and update the cache according to the reread data; and a local caching unit, used to provide local caching when data cannot be read from the configuration repository.
[0027] Furthermore, the process engine module includes: a process instance creation unit, used to create process instances and assign globally unique process instance identifiers; a node instantiation unit, used to create node instances according to process node configurations; a pending task generation unit, used to generate pending task records for manual task nodes based on a candidate approver list; a task distribution unit, used to distribute pending task records to the task lists of corresponding candidate approvers; and a process driving unit, used to receive processing operations and drive the process instance to the next node. The approver calculation module includes: an expression parsing unit, used to parse approver expressions and identify expression types; an organizational structure query unit, used to query a list of user identifiers that meet organizational structure conditions; a role query unit, used to query a list of user identifiers that meet role conditions; a relationship query unit, used to query the initiator's superior, department head, or project leader; and a result aggregation unit, used to aggregate the queried user identifier list into a candidate approver list and remove duplicates. The integration and adaptation module package... The system includes: a condition judgment unit, a data conversion unit, a connection establishment unit, a data sending unit, a response receiving unit, and an exception handling unit; the system also includes: a data encryption module, used to encrypt and store encrypted fields in business data according to field encryption identifiers; a key management module, used to generate independent encryption keys for each tenant and store them together; a data decryption module, used to obtain the decryption key of the corresponding tenant when reading business data and decrypt it; a cross-tenant authorization module, used to receive the authorization request from the first tenant, generate an authorization token, and send it to the target tenant; a cross-tenant access control module, used to receive the resource access request from the target tenant, verify the authorization token, and allow or deny access; a configuration canary release module, used to apply the specified configuration version only to users within the canary release range according to the canary release instruction, and apply it to all users when the full release time arrives; and a configuration rollback module, used to receive the configuration rollback instruction, read the configuration data of the rollback target version number to replace the currently effective configuration data, and send a configuration rollback message.
[0028] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus.
[0029] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.
Claims
1. A SaaS procurement method based on multi-user isolation and personalized configuration, characterized by: Includes the following steps: Receive tenant registration requests and obtain tenant organizational structure information, business scale information, data compliance requirements information, and security level information; The isolation strategy for tenants is determined based on the information obtained. The isolation strategy includes physical isolation strategy, data isolation strategy, computing isolation strategy, network isolation strategy and application isolation strategy. Isolation resources are allocated to tenants according to the isolation policy. These isolation resources include physical server resources, database instance resources, computing resource quotas, virtual private network resources, and microservice instance resources. A configuration repository is built for each tenant to store their personalized configuration data, which includes data model configuration data, business rule configuration data, process configuration data, user interface configuration data, and integration configuration data. Configuration instructions sent by tenants through the configuration workbench are received, and the personalized configuration data is generated or updated according to the configuration instructions, stored in the configuration repository, and a configuration version number is generated. When a tenant initiates a procurement request, the latest personalized configuration data for that tenant is read from the configuration repository and loaded into memory. The procurement business operation interface is dynamically rendered based on the loaded personalized configuration data. The interface includes custom form fields, custom menu structure, and custom list view. Receive business data input by the user, and verify the business data according to the business rule configuration data; start a procurement business process instance for the verified business data according to the process configuration data. The process instance includes custom workflow nodes, approver nodes, conditional branch nodes, parallel nodes and countersigning nodes. During the execution of the process instance, the approver for the next process node is dynamically calculated based on the business rule configuration data; When a process instance is transferred to an integration node, business data is sent to an external system via an interface based on the integration configuration data; operation logs for each node of the process instance are recorded and stored in association with the business data.
2. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: The physical isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on security level information. The data isolation strategy includes allocating independent database instances, independent database modes within shared database instances, or row-level isolation strategies within shared database modes to tenants based on security level information and data compliance requirements. The row-level isolation strategy includes setting a tenant identifier field in the data table, creating a row-level security policy to ensure that query results only contain data rows matching the current tenant identifier, creating a row-level insert policy to automatically write the tenant identifier, and creating a row-level update policy to verify the consistency of the tenant identifier. The computational isolation strategy includes allocating dedicated physical server nodes, dedicated container node pools, or shared container node pools to tenants based on business scale information and performance service levels. The system sets CPU and memory resource limits for tenant container instances, schedules container instances to a designated node pool using container orchestration tools, and sets traffic limiting thresholds using the service mesh component. The network isolation strategy includes allocating independent virtual private clouds to tenants, configuring subnets, routing tables, and access control lists, enabling bidirectional transport layer security authentication for inter-microservice communication through the service mesh component, and configuring independent network policies. The application isolation strategy includes allocating independent application namespaces to different organizational units within a tenant, configuring different application function on / off states using a feature switch component, and routing requests to the corresponding microservice instance groups based on the organizational unit identifier in the request header using the microservice gateway component.
3. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: The data model configuration data includes custom entity definitions, custom field definitions, custom index definitions, and custom relationship definitions; the business rule configuration data includes rule name, rule triggering conditions, and rule execution actions. The rule triggering conditions include conditional expressions, and the rule execution actions include data field assignment actions, data validation failure prompt actions, approval node append actions, notification message sending actions, and external system call actions; the process configuration data includes process definition files, process node configurations, node order configurations, and node jump condition configurations. The process nodes include manual task nodes, automatic service nodes, conditional branch nodes, parallel branch nodes, convergence nodes, and sub-process nodes. The manual task node configuration includes task name, task form identifier, candidate approver list, approval type, and approval time limit. The candidate approver list includes static approver identifiers and dynamic approver expressions; the user interface configuration data includes menu tree structure configuration, page layout configuration, form component configuration, list view configuration, and report template configuration; the integration configuration data includes external system connection configuration, interface mapping configuration, data conversion script configuration, synchronization triggering condition configuration, and exception handling configuration.
4. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: After generating and updating personalized configuration data, the configuration version number is compared with the previous version number. If a change is found, a configuration change message is sent to the configuration change notification topic in the configuration repository. The message includes the tenant identifier, configuration type identifier, and configuration version number. When reading the latest personalized configuration data from the configuration repository, the system listens for the configuration change notification topic. Upon receiving the configuration change message, the system rereads the corresponding personalized configuration data based on the tenant identifier and configuration type identifier, updates it to memory, and marks the previous memory data as invalid.
5. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: When a procurement business process instance is started, a globally unique process instance identifier is assigned to the process instance and stored in association with business data. The initial node of the process instance is generated according to the process definition file, and the current node status, the list of pending tasks, and the history of completed nodes are stored in the database. The custom workflow node includes setting the node type, node name, node handler, and node processing time limit. The node processing time limit includes a fixed duration limit and a calendar time limit. After the time limit expires, the node is automatically approved, automatically rejected, a timeout alarm is sent, or the timeout is escalated to the superior handler.
6. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: The dynamic calculation of the approver for the next process node includes: obtaining the node configuration information of the current process node, parsing the approver expression, querying the list of user identifiers that meet the conditions from the organizational structure service when the approver expression is an organizational structure positioning expression, querying the list of user identifiers that meet the role conditions from the permission service when the expression is a role positioning expression, and obtaining the initiator identifier from the business data and querying the initiator's superior, department head, or project leader from the organizational structure service when the expression is a relationship positioning expression. The list of user identifiers obtained is then used as the candidate approver list.
7. The SaaS procurement method based on multi-user isolation and personalized configuration according to claim 1, characterized in that: The system sends business data to an external system via an interface. Based on the synchronization trigger condition configuration, it determines whether the current business operation meets the trigger condition. If it does, it converts the business data into the target interface parameter format according to the interface mapping configuration. Based on the data conversion script configuration, it performs format conversion, unit conversion, or encoding conversion. Based on the external system connection configuration, it establishes a network connection and sends the converted business data to the external system interface address. It receives response data and performs retry or degradation operations when sending fails or the response is abnormal, based on the exception handling configuration.
8. A SaaS procurement system based on multi-user isolation and personalized configuration, wherein the SaaS procurement method based on multi-user isolation and personalized configuration according to any one of claims 1-7 is characterized in that: It includes the following modules: Tenant Management Module, which is used to receive tenant registration requests and obtain tenant organizational structure information, business scale information, data compliance requirement information and security level information; The isolation policy determination module is connected to the tenant management module and is used to determine the tenant's isolation policy based on the information obtained. The resource allocation module, connected to the isolation policy determination module, is used to allocate isolation resources to tenants according to the isolation policy. Configure the repository module to store tenants' personalized configuration data; The configuration management module, connected to the configuration repository module, is used to receive configuration instructions from tenants, generate or update personalized configuration data, and generate configuration version numbers. The configuration loading module, connected to the configuration repository module, is used to read the latest personalized configuration data and load it into memory when a tenant initiates a purchase request. The interface rendering module, connected to the configuration loading module, is used to dynamically render the procurement business operation interface based on the user interface configuration data. The data validation module, connected to the configuration loading module, is used to validate business data based on the configuration data according to business rules. The process engine module, connected to the configuration loading module and the data validation module, is used to start a procurement business process instance based on the process configuration data. The approver calculation module, connected to the process engine module and configuration loading module, is used to dynamically calculate the approver for the next process node. The integration and adaptation module connects to the process engine module and the configuration loading module, and is used to send business data to external systems based on the integration configuration data; the logging module connects to the process engine module, and is used to record operation logs and store them in association with business data.
9. The SaaS procurement system based on multi-user isolation and personalized configuration according to claim 8, characterized in that: The resource allocation module includes: a physical resource allocation unit, used to allocate physical server nodes or container node pools according to physical isolation policies; a database resource allocation unit, used to allocate database instances, independent database modes, or row-level isolated data tables according to data isolation policies; a computing resource allocation unit, used to set the resource upper limit of container instances and schedule them to designated node pools according to computing isolation policies; a network resource allocation unit, used to allocate virtual private clouds and configure subnets, routing tables, and access control lists according to network isolation policies; and an application resource allocation unit, used to allocate application namespaces and configure feature switches according to application isolation policies. The configuration management module includes: a data model configuration unit, a business rule configuration unit, a process configuration unit, an interface configuration unit, an integration configuration unit, and a version management unit. The configuration loading module includes: a change listening unit, used to listen to configuration change notification topics and receive configuration change messages; a data reading unit, used to reread personalized configuration data according to configuration change messages; a memory caching unit, used to store personalized configuration data and update the cache according to the reread data; and a local caching unit, used to provide local caching when data cannot be read from the configuration repository.
10. The SaaS procurement system based on multi-user isolation and personalized configuration according to claim 8, characterized in that: The process engine module includes: a process instance creation unit, used to create process instances and assign globally unique process instance identifiers; a node instantiation unit, used to create node instances according to process node configurations; a pending task generation unit, used to generate pending task records for manual task nodes based on a candidate approver list; a task distribution unit, used to distribute pending task records to the task lists of corresponding candidate approvers; and a process driving unit, used to receive processing operations and drive the process instance flow to the next node. The approver calculation module includes: an expression parsing unit, used to parse approver expressions and identify expression types; an organizational structure query unit, used to query a list of user identifiers that meet organizational structure conditions; a role query unit, used to query a list of user identifiers that meet role conditions; a relationship query unit, used to query the initiator's superior, department head, or project leader; and a result aggregation unit, used to aggregate the queried user identifier list into a candidate approver list and remove duplicates. The integration and adaptation module includes: The system comprises a condition judgment unit, a data conversion unit, a connection establishment unit, a data sending unit, a response receiving unit, and an exception handling unit. It also includes: a data encryption module for encrypting and storing encrypted fields in business data based on field encryption identifiers; a key management module for generating and storing independent encryption keys for each tenant; a data decryption module for obtaining the corresponding tenant's decryption key and decrypting data when reading business data; a cross-tenant authorization module for receiving authorization requests from the first tenant, generating authorization tokens, and sending them to the target tenant; a cross-tenant access control module for receiving resource access requests from the target tenant, verifying the authorization token, and allowing or denying access; a configuration canary release module for applying a specified configuration version only to users within the canary release range according to the canary release instruction, and applying it to all users when the full release time arrives; and a configuration rollback module for receiving configuration rollback instructions, reading the configuration data of the rollback target version number to replace the currently effective configuration data, and sending a configuration rollback message.