Job processing method and apparatus, and related device

WO2026199989A1PCT designated stage Publication Date: 2026-10-01HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/137427
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-03-26
Filing Date
2025-11-25
Publication Date
2026-10-01

Smart Images

  • Figure CN2025137427_01102026_PF_FP_ABST
    Figure CN2025137427_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A job processing method and apparatus, and a related device, relating to the technical field of data processing. The job processing apparatus receives an invocation instruction sent by a browser on the basis of a preset protocol, a value of a target field in the invocation instruction comprising an identifier of an operation template and an identifier of data to be processed, the operation template comprising a plurality of operations, and the data to be processed being associated with a job in the browser. The job processing apparatus acquires the operation template on the basis of the identifier of the operation template, and invokes, on the basis of the operation template and the identifier of the data to be processed, at least one extension corresponding to a target program to execute the plurality of operations in the operation template on the data to be processed, each extension being used to execute at least one operation in the operation template. Thus, a browser of any type only needs to send an invocation command indicating an operation template and data to be processed, and an extension is invoked by the job processing apparatus, thereby achieving decoupling between the browser and the extension, so that development costs can be effectively reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Operation processing methods, devices and related equipment

[0001] This application claims priority to Chinese Patent Application No. 202510379427.5, filed on March 26, 2025, entitled "Work Processing Method, Apparatus and Related Equipment", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of data processing technology, and in particular to a job processing method, apparatus and related equipment. Background Technology

[0003] In real-world applications, users may need to process data on web pages while working, such as analyzing form data or adding new data. For example, in a financial approval scenario, users might approve expense reports from various departments on a web page. During the approval process, users might need to accumulate the total amount from one or more departments' expense reports. In this case, users can click a jump button on the web page to navigate to Microsoft Office and use the appropriate extensions to continue their work. For instance, they could navigate to Excel and use Excel's SUM function (an extension) to sum the total amount from one or more departments' expense reports on the web page.

[0004] In practice, for specific browser types, developers can customize the execution script that is bound to the extension, and develop a connection file for the extension to connect to the browser, as well as job function code that is automatically executed after the extension is called. Thus, while the user is performing tasks on a webpage in the browser, the browser and the extension can establish a communication connection through the execution script and the connection file, and continue to perform the corresponding operations in the Office software according to the operation logic indicated by the job function code.

[0005] However, the large number of browser types and extensions required necessitates developers creating customized code for different browser types and extensions, resulting in higher development costs. Summary of the Invention

[0006] In view of this, this application provides a job processing method to enable the invocation of an extension program in the target program to continue executing a job on a webpage, thereby reducing development costs. This application also provides a corresponding job processing apparatus, computing device, computer-readable storage medium, and computer program product.

[0007] Firstly, this application provides a job processing method, which can be executed by a corresponding job processing device (which may be a console hereinafter referred to as a console). Specifically, the job processing device receives a calling instruction sent from a browser based on a preset protocol. The calling instruction includes a target field, the value of which includes an identifier of an operation template and an identifier of the data to be processed. The operation template includes multiple operations, such as an operation flow for defining multiple operations and their execution order. The data to be processed is data associated with a job in the browser, such as form data related to the job in a webpage of the browser. Then, the job processing device obtains the operation template according to the identifier of the operation template in the calling instruction, and calls at least one extension program corresponding to the target program to execute multiple operations in the operation template on the data to be processed according to the operation template and the identifier of the data to be processed in the calling instruction. Each of the at least one extension program is used to execute at least one operation in the operation template. For example, the target program may be Office software, such as Word, Excel, or PowerPoint.

[0008] In this way, the job processing device can call the corresponding extension program to perform multiple operations in the operation template according to the operation template indicated by the call command, so as to continue the job in the target program. This allows any type of browser to send a call command indicating the operation template and the data to be processed, and the job processing device can call any extension program, thereby decoupling the browser and extension program. As a result, developers do not need to perform customized development for various browsers and various extension programs, which can effectively reduce the development cost of developers.

[0009] In one possible implementation, when the job processing device invokes at least one extension program corresponding to the target program to execute multiple operations in the operation template on the data to be processed based on the operation template and the identifier of the data to be processed in the invocation instruction, specifically, it may start the target program and create a work file. The data to be processed is then processed within the work file, where the operations in the operation template are executed. This work file may include a workbook, such as a Word document in Word office software. Thus, the job processing device can load the extension programs corresponding to each operation in the operation template, and after at least one extension program has been loaded, it invokes at least one extension program corresponding to the target program based on the operation template and the identifier of the data to be processed in the invocation instruction, executing multiple operations in the operation template on the data to be processed within the work file. In this way, the job processing device automatically starts the target program and sets up the data processing environment (including creating a work file and invoking extension programs), achieving decoupling between the browser and the extension programs, thereby effectively reducing development costs for developers.

[0010] In one possible implementation, when determining the loading status of an extension, the job processing device can poll the values ​​of variables in a registry key, where each variable corresponds to at least one extension. Then, based on the variable values, the job processing device can determine the loading status of at least one extension, including whether loading is complete. In this way, by polling the variable values ​​in the registry key, the job processing device can sense the loading status of extensions and, upon determining that an extension has finished loading, promptly invoke the extension to perform the corresponding operations on the data to be processed, thereby executing the job within the target program.

[0011] In one possible implementation, the preset protocol is the Uniform Resource Locator (URL) protocol, and the target field is the path field in the URL protocol. When the job processing device retrieves the operation template based on the identifier of the operation template in the invocation command, it can specifically parse the invocation command to obtain the value of the path field. The value of the path field includes the identifier of the operation template and the identifier of the data to be processed. Thus, the job processing device can retrieve the operation template based on the identifier. In this way, the job processing device can determine which operation template to use to continue executing the job based on the invocation command of the custom URL protocol, ensuring that subsequent operations on the job are performed correctly.

[0012] In one possible implementation, the operation template is a macro, which includes an operation flow that includes multiple operations executed sequentially.

[0013] In one possible implementation, the job processing device can also acquire configuration operation data before receiving the invocation command sent by the browser based on a preset protocol. This configuration operation data consists of user-inputted operation template data. The job processing device then generates the operation template based on the configuration operation data. In this way, the job processing device supports user-defined configurations for data processing, improving the flexibility of data processing and enhancing the user experience.

[0014] Secondly, this application provides a job processing apparatus, comprising: a communication module for receiving a call instruction sent from a browser based on a preset protocol, the call instruction including a target field, the value of the target field including an identifier of an operation template and an identifier of data to be processed, the operation template including multiple operations, and the data to be processed being data associated with a job in the browser; an acquisition module for acquiring an operation template according to the identifier of the operation template in the call instruction; and a call module for calling at least one extension program corresponding to the target program to execute multiple operations in the operation template on the data to be processed according to the operation template and the identifier of the data to be processed in the call instruction, each of the at least one extension program being used to execute at least one operation in the operation template.

[0015] In one possible implementation, the calling module is configured to: start the target program; create a work file in which at least one operation in the operation template is performed on the data to be processed, the work file may include a workbook; load the extension programs corresponding to each operation in the operation template; and after at least one extension program is loaded, call at least one extension program corresponding to the target program according to the operation template and the identifier of the data to be processed in the calling instruction, and perform multiple operations in the operation template on the data to be processed in the work file.

[0016] In one possible implementation, the job processing apparatus further includes: a polling module for polling the values ​​of variables in a registry key, the variables corresponding to at least one extension; and a determining module for determining the loading status of at least one extension based on the values ​​of the variables, the loading status including loading completion.

[0017] In one possible implementation, the preset protocol is the Uniform Resource Locator (URL) protocol, and the target field is the path field in the URL protocol; the acquisition module is used to: parse the call command to obtain the value of the path field, the value of the path field including the identifier of the operation template and the identifier of the data to be processed; and acquire the operation template according to the identifier of the operation template.

[0018] In one possible implementation, the operation template is a macro, which includes an operation flow that includes multiple operations executed sequentially.

[0019] In one possible implementation, the communication module is further configured to acquire configuration operation data before receiving a call instruction sent by the browser based on a preset protocol, wherein the configuration operation data is operation template data input by the user; the device also includes a generation module, which is configured to generate an operation template based on the configuration operation data.

[0020] The job processing apparatus provided in the second aspect corresponds to the job processing method provided in the first aspect. Therefore, the technical effects of any implementation in the second aspect can be referred to the technical effects of the corresponding implementation in the first aspect, and will not be repeated here.

[0021] Thirdly, this application provides a computing device, which includes at least one processor and at least one memory; the at least one memory is used to store instructions, and the at least one processor executes the instructions stored in the at least one memory to cause the computing device to perform the job processing method in the first aspect or any possible implementation thereof. It should be noted that the memory may be integrated into the processor or may be independent of the processor. The computing device may also include a bus. The processor is connected to the memory via the bus. The memory may include readable storage memory and random access memory.

[0022] Fourthly, this application provides a computer-readable storage medium storing instructions that, when executed on at least one computing device, cause the at least one computing device to perform the job processing method described in the first aspect or any possible implementation thereof.

[0023] Fifthly, this application provides a computer program product containing instructions that, when run on at least one computing device, causes the at least one computing device to perform the job processing method in the first aspect or any possible implementation of the first aspect.

[0024] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Attached Figure Description

[0025] Figure 1 is a schematic diagram of the structure of an exemplary computing device provided in this application;

[0026] Figure 2 is a flowchart illustrating a job processing method provided in this application;

[0027] Figure 3 is a schematic diagram of the URL protocol-based invocation command used by browser 101 to call console 102;

[0028] Figure 4 is a schematic diagram of the interface for the console 102 to start and run the target program 103 and call the extension program according to the operation template;

[0029] Figure 5 illustrates the automated registration and association process during the installation of multiple extensions;

[0030] Figure 6 is a schematic diagram showing that state synchronization can be performed between the console 102 and multiple extensions;

[0031] Figure 7 is a schematic diagram of calling multiple atomic-level extension procedures according to the operation flow in the macro;

[0032] Figure 8 is a structural schematic diagram of a job processing device provided in this application;

[0033] Figure 9 is a schematic diagram of the structure of a computing device provided in this application. Detailed Implementation

[0034] To reduce development costs when calling extensions in the target program to continue executing tasks on a webpage, this application provides a task processing method. Based on multiple operations defined in the operation template, the corresponding extension of the target program is called to continue executing tasks in the browser (such as data processing tasks or operations in the browser). This decouples the browser from the extension, eliminating the need for developers to perform customized development for various browsers and extensions, thereby effectively reducing development costs.

[0035] The technical solution to be protected in this application will be described in detail below with reference to the accompanying drawings.

[0036] Referring to Figure 1, which is a schematic diagram of the structure of an exemplary computing device according to this application. As shown in Figure 1, the computing device 10 includes a browser 101, a console 102, a target program 103, and multiple extension programs. For ease of understanding, Figure 1 illustrates the computing device 10 with four extension programs, namely extension programs 201 to 204.

[0037] The console 102, or job processing device, can be an application running on the computing device 10, used to launch the target program 103 and call various extension programs. In practical applications, the console 102 can be installed simultaneously with the target program 103 and multiple extension programs on the computing device 10.

[0038] The target program 103 can be a program that supports job execution within a browser, such as Office, WPS, or other office software, or other programs that provide basic functionality. A job within a browser refers to a task to be performed in the browser environment or an operation to be performed on data displayed on a webpage. For example, in a financial approval scenario, a job within a browser could be a task to approve multiple expense reports presented on a webpage.

[0039] Extension programs are used to provide extended functions to the target program 103, thereby combining the basic functions of the target program 103 with the extended functions provided by the extension programs, which can improve work efficiency. For example, when the target program 103 is Office software, the extension program can be an Office add-in (such as an Office add-in for converting document formats, an Office add-in for processing data in forms, etc.). Extension programs 201 to 204 in the computing device 10 can provide different extended functions.

[0040] In practical applications, users can perform tasks in browser 101, such as processing form data on web pages displayed by browser 101. Furthermore, during the user's task, they can choose to jump to the target program 103 to call the corresponding extension to continue the task.

[0041] At this time, browser 101 can send a call instruction based on a preset protocol to console 102 based on the user's operation. This call instruction includes a target field, the value of which includes an identifier for the operation template and an identifier for the data to be processed. The operation template can be pre-configured, and it includes multiple operations required for the task in browser 101. The data to be processed could be, for example, form data from a webpage. Console 102 can obtain the corresponding operation template based on the identifier of the operation template carried in the call instruction, and, based on the operation template and the identifier of the data to be processed carried in the call instruction, call at least one extension program corresponding to the target program to execute the multiple operations in the operation template on the data to be processed. When multiple extension programs are called, each extension program is used to execute at least one operation in the operation template, and different extension programs can be responsible for performing different operations.

[0042] In this way, the console 102 can call the corresponding extension to perform multiple operations in the operation template of the data to be processed according to the operation template indicated by the call command, so as to continue the job in the target program 103. This allows any type of browser to send a call command to indicate the operation template and the data to be processed, and the console 102 can call any extension, thereby decoupling the browser 101 and the extension. As a result, developers do not need to perform customized development for various browsers and various extensions, which can effectively reduce the development cost of developers.

[0043] For example, the above describes the process of redirecting a job in browser 101 to target program 103 for continued execution, implemented by console 102 through software.

[0044] In other implementations, the console 102 can also be implemented in hardware. In this case, the console 102 can be implemented using a processor or a physical device including a processor. The processor can be a central processing unit (CPU), or any combination of an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a system-on-chip (SoC), a software-defined infrastructure (SDI) chip, an artificial intelligence (AI) chip, or a data processing unit (DPU). Furthermore, the console 102 can include one or more processors, and the types of processors can be one or more. The specific number and types of processors can be determined according to the actual application's business requirements; this application does not impose any limitations on this.

[0045] It is worth noting that the computing device 10 shown in Figure 1 is merely an illustrative example and is not intended to limit the scope of the application. For example, other possible computing devices 10 may include more types or more numbers of target programs or extension programs. Alternatively, in other possible computing devices 10, the console 102 may be integrated with the target program 103. In this case, the browser 101 can directly send a call instruction to the target program 103 and determine the operation template and the data to be processed based on the call instruction, thereby calling the corresponding extension program in the target program 103 to continue executing the job.

[0046] Next, various non-limiting specific implementation methods of the job processing procedure will be described in detail.

[0047] Referring to Figure 2, a flowchart illustrating a job processing method according to this application is provided. This method can be applied to the computing device 10 shown in Figure 1, or to other applicable computing devices. The following description uses the computing device 10 shown in Figure 1 as an example.

[0048] The job processing method shown in Figure 2 may specifically include:

[0049] S201: Browser 101 sends a call instruction of a preset protocol to console 102. The call instruction includes a target field. The value of the target field includes the identifier of the operation template and the identifier of the data to be processed. The operation template includes multiple operations. The data to be processed is data associated with the job in browser 101.

[0050] The data associated with the job in browser 101 refers to the data that needs to be processed when the user jumps to another program to continue executing the job. For example, for the job of approving expense reports on a webpage, the data associated with the job (i.e., the data to be processed) is one or more expense reports to be processed, such as one or more expense reports used to calculate the total expense amount.

[0051] In practical applications, users can use browser 101 to access web pages and perform tasks on those pages, such as viewing form data or performing data analysis. Furthermore, if browser 101 does not provide the necessary functions for the user's task on the data to be processed (such as calculating the average of the form data), the user can redirect the task to target program 103 and call the corresponding extension program to continue executing the task within target program 103, thus performing the desired operations on the data to be processed.

[0052] In one possible implementation, the webpage can be configured with a function button for program navigation. While working on the webpage, the user can click this function button to navigate to the target program 103 and continue executing the task. Correspondingly, after the user clicks the function button, the browser 101 can generate a call command based on a pre-configured communication protocol and send the call command to the console 102 to invoke the console 102. For example, the browser 101 can send a call command based on the Uniform Resource Locator (URL) protocol to the console 102, which may carry an identifier for the operation template and an identifier for the data to be processed.

[0053] For example, during the installation of target program 103 and multiple extension programs on computing device 10, console 102 can be installed simultaneously on computing device 10. Console 102 can be registered in the operating system (such as Windows) of computing device 10, and browser 101 can be associated with console 102 within computing device 10. For instance, a mapping relationship can be established between the identifier of browser 101 and the identifier of console 102 within computing device 10. After executing the URL protocol on the webpage, browser 101 can invoke console 102 associated with browser 101 based on URL protocol call commands, such as the shell and open commands built into the operating system as shown in Figure 3, thereby achieving cross-process communication between browser 101 and console 102.

[0054] The command includes a target field, whose values ​​include the identifier of the operation template and the identifier of the data to be processed. For example, the identifier of the operation template and the identifier of the data to be processed can be the value of the parameter "%1" in the command shown in Figure 3. Thus, the console 102 parses the command to obtain the value of this parameter, that is, the identifier of the operation template and the identifier of the data to be processed. For example, the identifier of the data to be processed can be, for instance, the identifier of a form; correspondingly, the data to be processed is the data in that form.

[0055] As an implementation example, when the default protocol is specifically the URL protocol, the target field in the invocation command can be the path field in the URL protocol, which can be used to indicate the address being accessed. In practical applications, developers can redefine the path field in the URL protocol so that the path field in the invocation command generated by the browser can carry new information, specifically, the identifier of the operation template and the identifier of the data to be processed.

[0056] In other implementation examples, the target field in the call instruction can also be the query field in the URL protocol. This query field can be used to indicate the information content to be requested. Thus, developers can redefine the query field in the URL protocol in advance so that the query field in the call instruction generated by the browser 101 can carry the identifier of the operation template and the identifier of the data to be processed.

[0057] In other embodiments, the communication protocol used by browser 101 to send the call command may also be other types of protocols, and there is no limitation on this.

[0058] An operation template includes multiple operations. For example, an operation template can be a macro in the target program 103, which can include an operation flow. This operation flow includes multiple operations that process the data associated with the job sequentially. In practical applications, the console 102 can be configured with multiple operation templates, such as operation template A and operation template B as shown in Figure 4. Different operation templates can include different operations or operation flows with different execution orders. Thus, the browser 101 can use the identifier of the operation template to indicate the operation template that the console 102 needs to load and execute.

[0059] Operation templates can be predefined by developers, such as allowing developers to schedule multiple operations to be performed sequentially on data. In this way, computing device 10 can automatically execute the entire process of redirecting a job on a webpage to the target program 103 without user intervention, thereby simplifying user operations.

[0060] Alternatively, the operation template can be defined by the user. For example, the user can input operation template data in the target program 103, and the console 102 or the target program 103 can use this operation template data as configuration operation data, generate the corresponding operation template based on the configuration operation data, and associate the operation template with a function button on the webpage. Thus, when the user clicks the function button on the webpage, the browser 101 can provide the identifier of the operation template associated with the function button to the console 102. In this way, the computing device 10 supports user-defined configurations for data processing, improving the flexibility of data processing and enhancing the user experience.

[0061] In practical applications, the call instructions sent by browser 101 to console 102 can also carry more types of information, such as the identifier for the target program and information for identity login.

[0062] For example, when computing device 10 includes multiple programs, and the job in browser 101 can continue to execute within these multiple programs, the calling instruction sent by browser 101 to console 102 can also carry the identifier of the target program. This identifier can be used to indicate the target program among the multiple programs for continuing to execute the job. For instance, computing device 10 may include multiple office software programs, such as Word, Excel, and PowerPoint. In the case of processing form data on a webpage (such as bolding the data in the form), browser 101 can send the identifier of Excel (i.e., the identifier of the target program) to console 102 to instruct console 102 to continue executing the job in Excel. The program capable of continuing to execute the job refers to a program that has the function of performing corresponding operations on the data to be processed associated with the job. For example, when summing form data on a webpage, both Excel and PowerPoint may have the function of summing the form data, thus allowing the job to continue to execute within Excel and PowerPoint. Word may not have the function to sum up form data, so the job cannot be executed in Word.

[0063] S202: Console 102 obtains the operation template based on the identifier of the operation template in the call instruction.

[0064] The obtained operation template includes multiple operations, which are the operations required to process the data to be processed in relation to the job.

[0065] In one possible implementation, as shown in Figure 5, during the installation of multiple extensions, the computing device 10 can register predefined protocols (such as URL protocols), operation template identifiers, and parameter placeholders for the identifiers of the data to be processed within the protocol locally. It can then bind the protocol and parameter placeholders to the console 102, for example, by establishing a mapping relationship between the protocol name, the parameter placeholder name, and the identifier of the console 102. The parameter placeholders indicate the position of the parameter values ​​of the operation template identifier and the identifier of the data to be processed within the target field. Simultaneously, the console 102 can be associated with virtualized parameters of a general operation template (or a virtual operation template), as shown in Figure 5.

[0066] In this way, after being invoked by browser 101, console 102 can parse the parameters passed by browser 101. Specifically, it can parse the values ​​of parameter placeholders to obtain the identifier of the operation template (as well as the identifier of the data to be processed and other information), and assign the identifier of the operation template to the virtualization parameter. Thus, console 102 can load the actual operation template according to the identifier of the operation template. For example, when the identifier of the operation template is used to indicate operation template A, console 102 can load operation template A according to the identifier of the operation template, as shown in Figure 4.

[0067] During the installation of the extension, users do not need to be aware of or intervene in the process of protocol registration, parameter placeholder registration, and virtualization parameter association between console 102 and the general operation template, which simplifies the user's operation and improves the user's installation experience.

[0068] S203: Based on the operation template and the identifier of the data to be processed in the call instruction, the console 102 calls at least one extension program corresponding to the target program 103 to perform multiple operations in the operation template on the data to be processed, wherein each called extension program is used to perform at least one operation in the operation template.

[0069] In one possible implementation, after console 102 is invoked, it can start and run target program 103 through functions provided by the operating system. For example, it can start and run target program 103 from multiple programs in computing device 10 based on the target program identifier provided by browser 101. After starting and running, target program 103 can load corresponding extensions. Specifically, target program 103 can load all extensions by default after starting and running; for example, Office software can load all Office add-ins (i.e., extensions) by default after starting and running. Alternatively, target program 103 can load only at least one extension corresponding to multiple operations in the operation template. For example, it can load only at least one extension required to execute the job based on the operation template received by console 102 or the loading instruction sent by console 102. After the extensions are loaded, console 102 can use the loaded extensions to execute multiple operations in the operation template on the data to be processed in target program 103.

[0070] In some practical applications, the data to be processed may need to be processed within a working file created by the target program 103. For example, the working file created by the target program 103 may be a workbook. Specifically, when the target program 103 is Word, the created working file may be a Word document; when the target program 103 is Excel, the created working file may be an Excel document, etc.

[0071] However, the target program 103 may not notify the console 102 whether the working file has been created and the extensions have been loaded. Therefore, the console 102 can synchronize its status with multiple extensions to determine when to initiate the execution of the operation template, i.e., to initiate the execution of the operation template after confirming that the working file has been created and the extensions have been loaded.

[0072] For example, as shown in Figure 6, console 102 can control the target program 103 to start and run. After starting and running, the target program 103 can create a working file and, after creating the working file, begin loading one or more extensions. As shown in Figure 6, after the target program 103 finishes loading the extension, the extension can update the value of the variable corresponding to the extension in the registry key. Correspondingly, console 102 can poll the value of the variable in the registry key, which indicates whether the extension has finished loading. For example, when the value of the variable is 0, it indicates that the target program 103 has not loaded the extension corresponding to the variable; when the value of the variable is 1, it indicates that the target program 103 has finished loading the extension corresponding to the variable. In this way, console 102 can determine the loading status of at least one extension corresponding to multiple operations in the operation template based on the polled variable values. This loading status indicates whether the extension has finished loading. For example, the loading status can include two states: loading complete or loading incomplete, corresponding to the variable values ​​of 1 and 0, respectively. Since loading the extension depends on the target program 103 completing the creation of the working file first, the completion of the extension loading indicates that the working file has been created. Thus, once the console 102 determines that at least one extension has been loaded, it can begin to execute multiple operations in the operation template.

[0073] In this case, there can be one variable in the registry key. When the target program 103 has finished loading all the extensions, one of the extensions can update the value of the variable in the registry key. For example, the last extension can update the value of the variable in the registry key, or a pre-specified extension can update the value of the variable in the registry key, etc.

[0074] Alternatively, there can be multiple variables in the registry key, and each variable can correspond to an extension that the target program 103 can load. Thus, for one extension, after the target program 103 finishes loading the extension, the extension can update the value of the variable corresponding to that extension in the registry key. Accordingly, the console 102 can determine whether the extension has finished loading by polling the value of this variable. Therefore, the console 102 can determine whether the target program 103 has finished loading multiple corresponding extensions by polling the values ​​of multiple variables in the registry key.

[0075] Furthermore, console 102 can poll the values ​​of variables in the registry keys corresponding to at least one extension participating in the job execution, based on the operation template. And, after determining that at least one extension has finished loading based on these variables, console 102 can begin executing multiple operations in the operation template even if other extensions not participating in the job execution have not finished loading. For example, target program 103 can load extensions 201 to 204 sequentially, and the extensions participating in the job execution in browser 101 are extensions 202 and 203. During the loading of each extension by target program 103, console 102 can poll the values ​​of variables in the registry keys corresponding to extensions 202 and 203. And, after determining that target program 103 has finished loading extensions 202 and 203, console 102 can begin executing multiple operations in the operation template even if target program 103 has not yet loaded extension 204. This improves the overall efficiency of continuing the job in target program 103.

[0076] After determining that at least one extension program participating in the job has been loaded (or all extension programs have been loaded), console 102 can obtain the data to be processed in the job based on the identifier of the data to be processed, and can call at least one extension program corresponding to multiple operations in the operation template to perform corresponding operations on the data to be processed (that is, execute multiple operations in the operation template) based on the operation template.

[0077] As an example, the extensions loaded by the target program 103 can provide atomic-level operations (or atomic-level functions), such as login, setting the point of view (POV), and opening a form. Furthermore, each extension can provide a calling interface, which could be, for example, the plugin function interface shown in Figure 4 or a component object model (COM), allowing the console 102 to call the extension to perform corresponding operations through the interfaces provided by each extension.

[0078] For example, taking opening a form in Excel as an example, as shown in Figure 7, the operation template loaded by console 102 can be a macro. This macro can include four operations executed sequentially: login, setting POV, opening the form, and summing. Console 102 can then pass the identifier (and other information) of the data to be processed to the macro and execute each operation within it sequentially. Specifically, during the login operation, console 102 can call extension 1 to log in and verify the user's identity using the interface provided by extension 1. During the setting POV operation, console 102 can call extension 2 to set the POV members in the form using the interface provided by extension 2, such as filtering the data in the form by setting POV members. During the opening the form operation, console 102 can call extension 3 to access the form on the webpage using the interface provided by extension 3. The identifier of the data to be processed can be passed as a parameter to extension 3 to obtain the data to be processed in the form. When performing a cumulative summation operation, console 102 can call extension 4 according to the interface provided by extension 4 to sum the data of the POV members in the form and obtain the corresponding sum value, as shown in Figure 7. In this way, console 102 can continue to perform operations on the form in Excel office software.

[0079] Thus, after the user clicks the function button on the webpage to jump to the program to execute the job, the console 102 can determine the operation template and the data to be processed according to the call instruction of the preset protocol sent by the browser 101, and call the corresponding extension program to execute multiple operations in the operation template on the data to be processed, so as to continue to execute the job in the target program 103, thereby realizing the automated continuation of the job.

[0080] Furthermore, for any type of browser, it only needs to provide calling instructions for indicating operation templates and data to be processed. The console 102 can then call any extension, thereby decoupling the browser 101 from the extension. This eliminates the need for developers to perform customized development for various browsers and extensions, effectively reducing development costs and improving the scalability and flexibility of interaction between the web page and the extension.

[0081] It is worth noting that other reasonable combinations of steps that can be conceived by those skilled in the art based on the above description also fall within the scope of protection of this application. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are preferred embodiments, and the actions involved are not necessarily essential to this application.

[0082] The job processing method provided by this application has been described above with reference to Figures 1 to 7. Next, the structure of the job processing device and computing equipment provided by this application will be described with reference to the accompanying drawings.

[0083] Referring to Figure 8, a schematic diagram of a job processing device is shown. The job processing device 800 includes:

[0084] The communication module 801 is used to receive a call instruction sent by the browser based on a preset protocol. The call instruction includes a target field, the value of which includes the identifier of the operation template and the identifier of the data to be processed. The operation template includes multiple operations, and the data to be processed is data associated with the job in the browser.

[0085] The acquisition module 802 is used to acquire the operation template based on the identifier of the operation template in the call instruction;

[0086] The calling module 803 is used to call at least one extension program corresponding to the target program to perform multiple operations in the operation template on the data to be processed, based on the operation template and the identifier of the data to be processed in the calling instruction. Each of the at least one extension program is used to perform at least one operation in the operation template.

[0087] It should be understood that the job processing apparatus 800 provided in this application can be implemented using a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). The PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a data processing unit (DPU), a system-on-chip (SoC), or any combination thereof. When the job processing shown in Figures 2 to 7 is implemented via software, the job processing apparatus 800 and its various modules can also be software modules.

[0088] In one possible implementation, the calling module 803 is configured to: start the target program; create a work file in which at least one operation in the operation template is performed on the data to be processed, the work file may include a workbook; load the extension programs corresponding to each operation in the operation template; and after at least one extension program is loaded, call at least one extension program corresponding to the target program according to the operation template and the identifier of the data to be processed in the calling instruction, and perform multiple operations in the operation template on the data to be processed in the work file.

[0089] In one possible implementation, the job processing device 800 further includes: a polling module 804 for polling the values ​​of variables in a registry key, the variables corresponding to at least one extension; and a determining module 805 for determining the loading status of at least one extension based on the values ​​of the variables, the loading status including loading completion.

[0090] In one possible implementation, the preset protocol is the Uniform Resource Locator (URL) protocol, and the target field is the path field in the URL protocol; the acquisition module 802 is used to: parse the call command to obtain the value of the path field, the value of the path field including the identifier of the operation template and the identifier of the data to be processed; and acquire the operation template according to the identifier of the operation template.

[0091] In one possible implementation, the operation template is a macro, which includes an operation flow that includes multiple operations executed sequentially.

[0092] In one possible implementation, the communication module 801 is further configured to acquire configuration operation data, which is operation template data input by the user, before receiving a call instruction sent by the browser based on a preset protocol; the job processing device 800 also includes a generation module 806, which is configured to generate an operation template according to the configuration operation data.

[0093] Since the job processing device 800 shown in Figure 8 corresponds to the console 102 in the embodiment shown in Figure 2 above, the specific implementation method and technical effects of the job processing device 800 shown in Figure 8 can be found in the relevant descriptions in the embodiment shown in Figure 2 above, and will not be repeated here.

[0094] Figure 9 is a schematic diagram of the hardware structure of a computing device 900 provided in this application. The computing device 900 can realize the function of the console 102 in the embodiment shown in Figure 2 above.

[0095] The console 102 can be implemented using a computing device 900. As shown in Figure 9, the computing device 900 includes a processor 901, a memory 902, and a communication interface 903. The processor 901, memory 902, and communication interface 903 communicate via a bus 904, or via wireless transmission or other means. The memory 902 stores instructions, and the processor 901 executes the instructions stored in the memory 902. Furthermore, the computing device 900 may also include a memory unit 905, which is connected to the processor 901, memory 902, and communication interface 903 via the bus 904. The memory 902 stores program code, and the processor 901 can read the program code stored in the memory 902 into the memory unit 905 and execute the program code to perform the following operations:

[0096] Receive a call instruction sent by a browser based on a preset protocol. The call instruction includes a target field. The value of the target field includes an identifier of the operation template and an identifier of the data to be processed. The operation template includes multiple operations. The data to be processed is data associated with a job in the browser.

[0097] Obtain the operation template based on the identifier of the operation template in the invocation instruction;

[0098] Based on the operation template and the identifier of the data to be processed in the calling instruction, at least one extension program corresponding to the target program is called to perform multiple operations in the operation template on the data to be processed, and each of the at least one extension program is used to perform at least one operation in the operation template.

[0099] It should be understood that in this application, processor 901 can be a CPU, or it can be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete device assemblies, etc. General-purpose processors can be microprocessors or any conventional processor, etc.

[0100] Memory 902 may include read-only memory and random access memory, and provides instructions and data to processor 901. Memory 902 may also include non-volatile random access memory.

[0101] The memory 902 can be volatile memory or non-volatile memory, or it can include both. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct memory bus RAM (DR RAM).

[0102] Communication interface 903 is used for communication with other devices connected to computing device 900. Bus 904 may include a data bus, as well as a power bus, control bus, and status signal bus, etc. However, for clarity, all buses are labeled as bus 904 in the figure.

[0103] It should be understood that the computing device 900 according to this application can correspond to the console 102 in this application, and can correspond to the method executed by the console 102 in the method shown in FIG2. The above and other operations and / or functions implemented by the computing device 900 are respectively to implement the flow of the corresponding method in FIG2. For the sake of brevity, they will not be described in detail here.

[0104] As one possible implementation, the console 102 can be implemented using software running on the computing device 900. In this case, the console 102 can be an application running on the processor 901, and the processor 901 can execute the methods performed by the console 102 in Figure 2 during the execution of this application. The memory 902 or memory unit 905 can be used to store data generated by the console 102 during its operation, and the processor 901 can communicate with other devices connected to the computing device 900 through the communication interface 903.

[0105] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform the above-described operation processing method.

[0106] This application also provides a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computing device, all or part of the processes or functions described in this application are generated.

[0107] The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, or data center to another website, computer, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.

[0108] The computer program product can be a software installation package. When any of the aforementioned job processing methods is required, the computer program product can be downloaded and executed on a computing device.

[0109] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, all or part of the processes or functions described in this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.

[0110] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A job processing method characterized by comprising: The method is performed by a job processing device, and the method includes: Receive a call instruction sent by a browser based on a preset protocol. The call instruction includes a target field. The value of the target field includes an identifier of the operation template and an identifier of the data to be processed. The operation template includes multiple operations. The data to be processed is data associated with a job in the browser. Obtain the operation template based on the identifier of the operation template in the invocation instruction; Based on the operation template and the identifier of the data to be processed in the calling instruction, at least one extension program corresponding to the target program is called to perform multiple operations in the operation template on the data to be processed, and each of the at least one extension program is used to perform at least one operation in the operation template.

2. The method of claim 1, wherein, The step of invoking at least one extension program corresponding to the target program to perform multiple operations in the operation template on the data to be processed based on the operation template and the identifier of the data to be processed in the invocation instruction includes: Start the target program; Create a work file, in which the data to be processed is subjected to the operations in the operation template, the work file including a workbook; Load the extension programs corresponding to each operation in the operation template; After the at least one extension program is loaded, at least one extension program corresponding to the target program is invoked according to the operation template and the identifier of the data to be processed in the invocation instruction, and at least one operation in the operation template is performed on the data to be processed in the working file.

3. The method of claim 2, wherein, The method further includes: Poll the values ​​of variables in registry entries, where the variables correspond to the at least one extension; Based on the value of the variable, the loading status of the at least one extension is determined, and the loading status includes loading completion.

4. The method according to any one of claims 1 to 3, characterized in that, The preset protocol is the Uniform Resource Locator (URL) protocol, and the target field is the path field in the URL protocol; Obtaining the operation template based on the identifier of the operation template in the invocation instruction includes: The call command is parsed to obtain the value of the path field, which includes the identifier of the operation template and the identifier of the data to be processed. The operation template is obtained based on its identifier.

5. The method according to any one of claims 1 to 4, characterized in that, The operation template is a macro, the macro includes an operation flow, and the operation flow includes multiple operations executed sequentially.

6. The method according to any one of claims 1 to 5, characterized in that, Before receiving the invocation instruction sent by the browser based on a preset protocol, the method further includes: Obtain configuration operation data, which is operation template data input by the user; The operation template is generated based on the configuration operation data.

7. A job processing device, characterized in that, The job processing device includes: The communication module is used to receive a call instruction sent by the browser based on a preset protocol. The call instruction includes a target field, the value of which includes an identifier of the operation template and an identifier of the data to be processed. The operation template includes multiple operations, and the data to be processed is data associated with a job in the browser. The acquisition module is used to acquire the operation template based on the identifier of the operation template in the invocation instruction; The calling module is used to call at least one extension program corresponding to the target program to perform multiple operations in the operation template on the data to be processed, based on the operation template and the identifier of the data to be processed in the calling instruction. Each of the at least one extension program is used to perform at least one operation in the operation template.

8. A computing device, characterized in that, The computing device includes a processor and memory; The processor is configured to execute instructions stored in the memory to cause the computing device to perform the method of any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed on at least one computing device, cause the at least one computing device to perform the method as described in any one of claims 1 to 6.

10. A computer program product containing instructions, characterized in that, When it is run on at least one computing device, it causes the at least one computing device to perform the method as described in any one of claims 1 to 6.