Dynamic read-write interface processing method and system based on custom configuration format

By adopting a dynamic read and write interface processing method based on custom configuration formats in the low-code development platform, the problems of insufficient flexibility in the generation and execution of SQL statements and solidification of return value formats in the prior art are solved, and flexible SQL statement generation and business demand response are realized.

CN119884222APending Publication Date: 2025-04-25SUZHOU MAXNET NETWORK SECURITY TECH CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202411950644.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

The existing low-code development platform cannot dynamically generate and execute different SQL statements, and the return value output content and format are solidified, so it cannot flexibly respond to changes in business needs.

Method used

The dynamic read and write interface processing method based on a custom configuration format is adopted, and SQL statement types, database table names and conditional configurations are defined through configuration files, executable SQL statements are generated, and JavaScript dynamic code is introduced to adjust the calculation logic and format of the return value.

Benefits of technology

It realizes the flexibility and configurability of SQL statement generation and execution, and can dynamically generate targeted SQL statements based on runtime data. It is suitable for application scenarios where query or operation conditions are frequently changed, and supports flexible adjustment of business needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119884222A_ABST
    Figure CN119884222A_ABST
Patent Text Reader

Abstract

The invention discloses a user-defined configuration format-based dynamic read-write interface processing method and system suitable for a low-code development platform, which are driven by user-defined configuration, dynamically generate targeted SQL (Structured Query Language) statements according to data during operation and complete execution in a database. According to the method, the flexibility and configurability of SQL statement generation and execution are improved, and the method is particularly suitable for application scenes where query or operation conditions need to be frequently changed. Meanwhile, the javascript dynamic code is introduced, the calculation logic and format of the return value can be adjusted at any time according to the code in the configuration file, and the service change requirements in most scenes can be met.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a dynamic read-write interface processing method and system based on a custom configuration format suitable for a low-code development platform. Background Art

[0002] With the rapid development of information technology and cloud computing, data management and processing have become an important part of enterprise and organizational architecture. In existing technologies, because the front-end, back-end, and various interfaces need to be developed at the same time, a large amount of back-end R&D manpower is required for interface development, and data personnel are required to help write SQL. The communication and development costs are high. Errors and omissions are prone to occur during the manual code development process. The complexity and diversity of interface codes greatly increase the maintenance cost, and it is impossible to conveniently track and manage the code change history. Therefore, low-code platform technology is based on solving existing problems, and obtains data from the database through a visual interface, simple configuration, or a small amount of code writing.

[0003] Current low-code development platforms, such as PowerApps and Mendix, usually have database query programs that write fixed SQL statements in configuration files and replace some variables in the SQL statements with actual values ​​before execution. After the SQL statements are executed, the return values ​​are modified according to the fixed codes in the program and the return values ​​are output in a fixed format.

[0004] Technical problems existing in the prior art: 1. The core format of the SQL statement cannot be modified, and only some variables can be replaced. It cannot support business scenarios that require different SQL statements to be executed according to different situations, and lacks flexibility in statement generation.

[0005] 2. It only supports read and write operations on the database, and the format of the operation results is fixed. When business requirements change, the return value content or format cannot be modified without modifying the service program code, which also reflects the lack of flexibility in the return value. Summary of the invention

[0006] The purpose of the present invention is to solve the above problems existing in the prior art and to provide a dynamic read-write interface processing method and system based on a custom configuration format.

[0007] The purpose of the present invention is achieved through the following technical solutions: A dynamic read-write interface processing method based on a custom configuration format comprises the following steps: S1, determining the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part; S2, determining a reading module for the configuration file; using the file reading and parsing functions provided by the corresponding programming language to form a reading module to realize the function of reading the content of the configuration file, parsing the content of the configuration file into a data structure that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements; S3, determining the SQL statement generation module; performing different logical processing according to the SQL statement type parsed from the configuration file to construct the main frame of the SQL statement; then processing the condition configuration part, including the following steps, traversing the condition array, generating a condition expression according to the field name, operator and value in each condition element, combining the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement, generating an executable SQL statement with a specific condition configuration; S4, determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

[0008] Preferably, the programming language is in JSON format. JavaScript code is introduced into the overall structure of the configuration file.

[0009] The present invention also includes the steps of introducing dynamic code into the configuration file and developing corresponding service code, specifically including: S10: Define the configuration format specification; select an overall configuration file structure that can contain static configuration and dynamic code; S20: Develop a configuration parser for parsing the static part of the configuration file, including general settings and parameters; and add the parsing capability of JavaScript code to the parser to ensure that the JavaScript code segment can be correctly identified and extracted; S30: Implement dynamic code execution environment configuration, including security sandbox and code execution interface. The security sandbox is used to limit the execution permissions of JavaScript code to avoid potential security risks to the system; the code execution interface provides an interface for service code to call, execute JavaScript code in the configuration file, and pass necessary context and parameters; S40: Developing service code, including designing a service architecture and a dynamic code integration module: designing a service architecture to ensure that the server can process dynamic code execution requests from the configuration file; the dynamic code integration module supports calling a dynamic code execution interface in the service code, so that the server can execute JavaScript code according to the configuration file at runtime.

[0010] Preferably, the method further includes the step of self-checking the configuration file. Specifically, the method uses jsonschema technology to verify the validity of the dynamic code of the configuration file. The specific steps include: Determine the data structure. According to the specific business scenario requirements, determine the data type of the data object, whether it is a simple or complex type, including determining whether it is a number, string, array, or object information; Define the attributes of each field. For each element in the data, define the type and constraints or additional requirements it should meet, which will be used in subsequent field validity checks. Specify required fields and mark which fields are required to ensure that key data is not missed; Data verification: Verify the legitimacy of input data and analyze whether each input field meets the predefined constraints. If all the conditions are met, the verification is successful, otherwise the verification fails. Verification result: when all verifications are completed and each field data field is legal, the verification is successful, otherwise the verification fails.

[0011] The present invention also discloses a dynamic read-write interface processing system based on a custom configuration format, comprising: A file structure configuration unit, used to determine the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part; A file reading module configuration unit is used to determine a reading module for a configuration file; a reading module is formed using file reading and parsing functions provided by a corresponding programming language to realize the function of reading the content of the configuration file, and the content of the configuration file is parsed into a data structure that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements; The statement generation module configuration unit is used to determine the SQL statement generation module; according to the SQL statement type parsed from the configuration file, different logical processing is performed to build the main frame of the SQL statement; then the condition configuration part is processed, including the following steps: traversing the condition array, generating a condition expression according to the field name, operator and value in each condition element in combination with the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement to generate an executable SQL statement with a specific condition configuration; The execution function configuration unit is used to determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

[0012] The beneficial effects of the present invention are mainly reflected in: 1. Solve the problem that different SQL statements cannot be dynamically generated and executed according to runtime data under the existing solution. The present invention combines conditional configuration with runtime data to freely assemble SQL statements and execute them. It can realize the function of dynamically generating targeted SQL statements driven by custom configuration according to runtime data (flexibly set through configuration files) and completing execution in the database; it improves the flexibility and configurability of SQL statement generation and execution, and is particularly suitable for application scenarios that require frequent changes in query or operation conditions.

[0013] 2. Solve the problem that the return value output content and format of the service program under the existing solution are fixed and cannot be modified. By introducing javascript dynamic code, the present invention can adjust the calculation logic and format of the return value at any time according to the code in the configuration file, which can meet the business change requirements in most scenarios. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 It is a process schematic diagram of the method of the present invention. DETAILED DESCRIPTION

[0015] The purpose, advantages and features of the present invention will be illustrated and explained by the non-limiting description of the following preferred embodiments. These embodiments are only typical examples of the application of the technical solution of the present invention, and any technical solution formed by equivalent replacement or equivalent transformation falls within the scope of protection claimed by the present invention.

[0016] like Figure 1 As shown, the present invention provides a dynamic read-write interface processing method based on a custom configuration format, which specifically includes the following steps: S1, determine the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part.

[0017] Common data formats include XML, JSON or YAML, etc., and the present invention takes JSON format as an example for explanation. The overall structure of the configuration file may include different key parts, such as fields for defining SQL statement types, such as SELECT, INSERT, UPDATE, DELETE, etc., and the characteristics of the present invention: conditional configuration part.

[0018] For the condition configuration part, it can be designed in the form of an array, where each element in the array represents a specific condition. Each element contains key attributes such as field name (corresponding to the column name in the database table), operator (such as equal to "=", greater than ">", less than "<" and other common operators), value (can be various data types, and it is necessary to consider how to accurately represent it in the configuration and subsequent parsing). At the same time, the connection relationship between multiple conditions must also be considered, such as using "AND" logical connection or "OR" logical connection, and a special field can be set to specify this connection word.

[0019] S2, determining a reading module for the configuration file; using the file reading and parsing functions provided by the corresponding programming language to form a reading module to implement the function of reading the content of the configuration file, for example, using the json module in Python to read the JSON file.

[0020] Parse the configuration file content into a data structure (such as a dictionary, list, etc.) that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements.

[0021] S3, determine the SQL statement generation module; according to the SQL statement type parsed from the configuration file, perform different logical processing to build the main framework of the SQL statement; for example, for the SELECT statement, first extract the column name to be queried specified in the configuration file (if the column name is not specified, all columns may be queried by default, and the rules can be flexibly designed), and build the beginning part similar to "SELECT column1, column2 FROM...".

[0022] Then, the conditional configuration part is processed according to the business needs in the corresponding SQL statement, including the following steps: traversing the condition array, generating a conditional expression according to the field name, operator and value in each conditional element in combination with the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement to generate an executable SQL statement with a specific conditional configuration.

[0023] In this process, dynamic code (such as Javascript script) can be introduced into the overall structure of the configuration file according to business needs (such as changes in the output format), and corresponding service code can be developed to support the calling of dynamic code to execute more complex business logic in the stages before and after the execution of SQL statements, and finally realize dynamic adjustment of the content and format of the return value according to the latest needs. Through this technical point, the present invention realizes flexible support for business changes. When it is necessary to adjust the SQL execution results or the return value format, it is only necessary to simply modify the dynamic code to complete the relevant changes. Since it is no longer necessary to modify the code of the service program, the development, testing, and deployment time in the original development program is greatly reduced, and the response to demand changes can be completed in the first time.

[0024] Specifically, it includes the following steps: S10: Define the configuration format specification; design a configuration file structure that can contain static configuration and dynamic code, such as embedding JavaScript code snippets in a JSON-formatted configuration file.

[0025] S20: Develop a configuration parser: Develop a parser to parse the static parts of the configuration file, such as general settings and parameters. At the same time, add the ability to parse JavaScript code to the parser to ensure that the code snippets can be correctly identified and extracted.

[0026] S30: Implement a dynamic code execution environment; mainly includes a security sandbox and a code execution interface. The security sandbox implements a sandbox environment to safely execute JavaScript code, restrict code execution permissions, and avoid potential security risks to the system. The code execution interface provides an interface for service code to call, execute the JavaScript code in the configuration, and pass the necessary context and parameters.

[0027] S40: Develop service code; including service architecture design and dynamic code integration module: Design service architecture to ensure that the service can handle dynamic code execution requests from configuration files. The dynamic code integration module supports calling dynamic code execution interfaces in service code, so that the service can execute JavaScript code according to the configuration at runtime.

[0028] In the preferred embodiment provided by the present invention, S10 selects a suitable configuration file format and defines code embedding rules. Taking the JSON format as an example, a special area can be defined in a field of the JSON object to store JavaScript code. For example, the JavaScript function definition is stored in the dynamicCode field. This function can be called in a suitable execution environment and can access the parameters in staticSettings. The start and end marks of the code are clarified. For example, it can be stipulated that the JavaScript code must be wrapped in a specific string, so that the code segment can be identified more accurately and avoid confusion with other texts in the configuration file. Restrictions are imposed on the format of the code, such as code indentation specifications, variable naming rules, etc., to ensure the readability and maintainability of the code.

[0029] The development of the S20 configuration parser includes static part parsing and dynamic code parsing. For the static part in the configuration file, such as staticSettings in JSON format, you can use the existing JSON parsing library. In most programming languages, there are mature JSON parsing tools. For example, in JavaScript, you can use the JSON.parse() method to convert the JSON string in the configuration file into a JavaScript object. For dynamic code parsing, when encountering embedded JavaScript code, lexical analysis is required. You can use lexical analysis tools (such as Jison, etc.) to decompose the code into words (tokens), such as identifying keywords, variable names, operators, etc.

[0030] S30 Dynamic Code Execution Environment Configuration, this link focuses on two key parts: the construction of the security sandbox and the code execution interface. The construction of the security sandbox is intended to create a safe and controllable environment for the execution of JavaScript code. By using a variety of security mechanisms, such as permission restrictions, resource isolation, and access control, the scope of permissions of the code during execution is strictly constrained. This will effectively prevent the code from posing potential threats to the stability, security, and data integrity of the system due to malicious operations or unexpected errors, and ensure the overall security of the system when executing dynamic code. The design of the code execution interface is to provide a set of standard, stable, and easy-to-call interface mechanisms for the service code to interact conveniently with the JavaScript code in the configuration during runtime. The interface is responsible for receiving the necessary context information and parameter data passed by the service code, and accurately passing it to the JavaScript code in the sandbox environment, and can correctly obtain the results of the code execution and feedback to the service code, so as to realize the functional requirements of the system to flexibly execute dynamic code according to the configuration during operation.

[0031] S40 develops service code, including service architecture design and dynamic code integration module. The service architecture design adopts design patterns such as microservice architecture or layered architecture, so that the service can efficiently handle dynamic code execution requests. For example, in a layered architecture, it can be divided into a presentation layer, a business logic layer, and a data access layer. Dynamic code execution can be placed in the business logic layer and interact with other layers through interfaces. In the service code, the dynamic code integration module implements the call logic for the dynamic code execution interface. When the service needs to execute dynamic code according to the configuration, the dynamic code and related parameters are extracted from the configuration file, and then the code is executed in a secure sandbox environment through the execution interface. The integration module needs to process the execution results of the dynamic code and apply the results to the subsequent process of the service. For example, if the dynamic code returns a calculation result, the service can update the database or return it to the client based on this result.

[0032] At the same time, you also need to consider configuring the query content and display list, as well as permission parameters, for the corresponding front-end page.

[0033] S4, determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

[0034] Specifically, the basic interface parameters are first defined for the current business, including the interface address, request method, etc. Then the server reads the SQL statement with specific conditional configuration and automatically completes the registration of the service interface according to the configuration content; when the server receives the interface call request, it completes the dynamic SQL generation according to the configuration content and executes the SQL statement to obtain the query result; the server executes the dynamic code to modify the query result, and constructs the expected return structure, and finally returns the required data to the caller.

[0035] The present invention also includes the step of self-checking the SQL statement configured with the specific condition, for example, using json schema technology to verify the validity of the dynamic code of the configuration file, and the specific steps include: Determine the data structure. According to the specific business scenario requirements, determine the data type of the data object, whether it is a simple or complex type, including determining whether it is a number, string, array, or object; Define the attributes of each field. For each element in the data, define the type and constraints or additional requirements it should meet, which will be used in subsequent field validity checks. Specify required fields and mark which fields are required to ensure that key data is not missed; Data verification: Verify the legitimacy of input data and analyze whether each input field meets the predefined constraints. If all the conditions are met, the verification is successful, otherwise the verification fails. Verification result: when all verifications are completed and each field data field is legal, the verification is successful, otherwise the verification fails.

[0036] Strict filtering and verification are performed through the above self-checking steps. It is forbidden to contain dangerous content that may lead to command execution, code injection, etc., such as system command keywords (such as dangerous commands such as "; rm -rf / " in the Linux environment).

[0037] The method of the present invention can reduce the demand for service program code development and the accompanying testing, operation and maintenance deployment requirements, ultimately reducing the development and operation and maintenance costs of the enterprise while speeding up the response speed to changes in customer needs.

[0038] In the present invention, the configuration file adopts a hierarchical configuration structure to ensure security. The format of the configuration file should be able to accommodate a variety of basic data types, such as strings, numbers, Boolean values, dates, etc., while allowing complex data structures, such as arrays and objects. Taking the JSON format as an example, it can represent these data types well. For example, a configuration item can be an array containing multiple screening conditions, each condition is an object containing field names, operators and values, and this structure can flexibly build complex query conditions. For some parts that may change, a parameterized approach is adopted. For example, in the configuration of generating SQL statements, the table name, column name and conditions of the query can all be used as parameters. In this way, by modifying these parameters, different database operation requirements can be easily adapted without modifying the structure of the entire configuration file. Default parameters can be set, and when the user does not provide certain parameters, the default values ​​are used to ensure the integrity of the configuration. For example, in the database query configuration, if the query column is not specified, all columns are queried by default.

[0039] Furthermore, the present invention can dynamically load and update configuration files during runtime. Thus, during the running of an application, if the configuration of certain operations needs to be changed (such as changing the conditions of a database query), the new configuration can be directly loaded without restarting the application. Dynamic updates can be achieved through a configuration management system, which can monitor changes in configuration files and automatically reload and apply new configurations when the configuration files change.

[0040] Of course, in terms of security, the present invention performs strict data type verification on each configuration item. For example, if a configuration item should be a number, it is necessary to check whether it is a valid numeric type to prevent security vulnerabilities or program exceptions caused by type errors. This can be achieved using the type checking function of the programming language or a custom verification function.

[0041] The present invention also discloses a dynamic read-write interface processing system based on a custom configuration format, comprising: A file structure configuration unit, used to determine the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part; A file reading module configuration unit is used to determine a reading module for a configuration file; a reading module is formed using file reading and parsing functions provided by a corresponding programming language to realize the function of reading the content of the configuration file, and the content of the configuration file is parsed into a data structure that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements; The statement generation module configuration unit is used to determine the SQL statement generation module; according to the SQL statement type parsed from the configuration file, different logical processing is performed to build the main frame of the SQL statement; then the condition configuration part is processed, including the following steps: traversing the condition array, generating a condition expression according to the field name, operator and value in each condition element in combination with the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement to generate an executable SQL statement with a specific condition configuration; The execution function configuration unit is used to determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

[0042] There are many implementation methods of the present invention, and all technical solutions formed by equivalent transformation or equivalent transformation fall within the protection scope of the present invention.

Claims

1. A dynamic read-write interface processing method based on a custom configuration format, characterized in that: The steps include: S1, determining the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part; S2, determining a reading module for the configuration file; using the file reading and parsing functions provided by the corresponding programming language to form a reading module to realize the function of reading the content of the configuration file, parsing the content of the configuration file into a data structure that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements; S3, determining the SQL statement generation module; performing different logical processing according to the SQL statement type parsed from the configuration file to construct the main frame of the SQL statement; then processing the condition configuration part, including the following steps, traversing the condition array, generating a condition expression according to the field name, operator and value in each condition element, combining the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement, generating an executable SQL statement with a specific condition configuration; S4, determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

2. The method according to claim 1, characterized in that: The programming language is in JSON format.

3. The method according to claim 1, characterized in that: The JavaScript code is introduced into the overall structure of the configuration file.

4. The method according to claim 3, characterized in that: The step of introducing dynamic code into the configuration file and developing corresponding service code includes: S10: Define the configuration format specification; select an overall configuration file structure that can contain static configuration and dynamic code; S20: Develop a configuration parser for parsing the static part of the configuration file, including general settings and parameters; and add the parsing capability of JavaScript code to the parser to ensure that the JavaScript code segment can be correctly identified and extracted; S30: Implement dynamic code execution environment configuration, including security sandbox and code execution interface. The security sandbox is used to limit the execution permissions of JavaScript code to avoid potential security risks to the system; the code execution interface provides an interface for service code to call, execute JavaScript code in the configuration file, and pass necessary context and parameters; S40: Developing service code, including designing a service architecture and a dynamic code integration module: designing a service architecture to ensure that the server can process dynamic code execution requests from the configuration file; the dynamic code integration module supports calling a dynamic code execution interface in the service code, so that the server can execute JavaScript code according to the configuration file at runtime.

5. The method according to claim 1, characterized in that: The method also includes a step of performing self-check on the formed configuration file.

6. The method according to claim 5, characterized in that: The json schema technology is used to verify the validity of the dynamic code of the configuration file. The specific steps are as follows: Determine the data structure. According to the specific business scenario requirements, determine the data type of the data object, whether it is a simple or complex type, including determining whether it is a number, string, array, or object information; Define the attributes of each field. For each element in the data, define the type and constraints or additional requirements it should meet, which will be used in subsequent field validity checks. Specify required fields and mark which fields are required to ensure that key data is not missed; Data verification: Verify the legitimacy of input data and analyze whether each input field meets the predefined constraints. If all the conditions are met, the verification is successful, otherwise the verification fails. Verification result: when all verifications are completed and each field data field is legal, the verification is successful, otherwise the verification fails.

7. A dynamic read-write interface processing system based on a custom configuration format, characterized in that: include A file structure configuration unit, used to determine the overall structure of the configuration file; the content of the configuration file includes a field defining the SQL statement type, a field specifying the name of the database table to be operated, and a condition configuration part; A file reading module configuration unit is used to determine a reading module for a configuration file; a reading module is formed using file reading and parsing functions provided by a corresponding programming language to realize the function of reading the content of the configuration file, and the content of the configuration file is parsed into a data structure that can be processed by the corresponding programming language, so as to subsequently extract key information to generate SQL statements; The statement generation module configuration unit is used to determine the SQL statement generation module; according to the SQL statement type parsed from the configuration file, different logical processing is performed to build the main frame of the SQL statement; then the condition configuration part is processed, including the following steps: traversing the condition array, generating a condition expression according to the field name, operator and value in each condition element in combination with the corresponding SQL grammar rules, and adding it to the main frame of the SQL statement to generate an executable SQL statement with a specific condition configuration; The execution function configuration unit is used to determine the execution function, establish a connection with the target database, pass the generated SQL statement into the execution method of the database connection object, and implement the execution operation of the SQL statement.

Citation Information

Patent Citations

  • Database operation code generation method and device

    CN106095792A

  • Front and back end development management method and device, computer equipment and storage medium

    CN116661763A

  • Method and system for automatically generating SQL (Structured Query Language) based on zero-code inference engine

    CN117171203A

  • Database operating system and method based on JSON and SQL

    CN117807106A

  • Method for automatically generating interface based on specific programming language, medium and equipment

    CN117807145A