Information processing program, information processing method, and information processing device
The integration of an Open Policy Agent with workflow management systems automates policy enforcement and adapts to organizational rules, enhancing efficiency by ensuring compliance and reducing manual input errors.
Patent Information
- Application Number
- JP2023094183
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-07
- Publication Date
- 2024-12-19
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing workflow management systems face challenges in effectively applying policy controls and improving work efficiency due to manual input of policy restrictions, leading to potential rule discrepancies and inefficiencies.
An information processing program and device that utilize an Open Policy Agent (OPA) to automate policy enforcement by linking user input variables with predefined policies, narrowing down execution results to comply with organizational rules, and sorting results by frequency of use.
Enhances work efficiency by ensuring policy compliance and reducing manual input errors, allowing seamless adaptation to policy changes and improving task efficiency in workflow management systems.
Smart Images

Figure 2024176005000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing program, an information processing method, and an information processing device. [Background technology]
[0002] In recent years, with the promotion of teleworking, various organizations such as companies are promoting the introduction of systems that minimize face-to-face work, such as stamping business documents, and complete business operations digitally.
[0003] Conventionally, a technology has been proposed for workflow management systems that adds tags to each task using keyword extraction technology or the like, sets restrictions such as distributing information with specific tags added as related information, and narrows down the related information to be presented to the user by using tags. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2011-192078 A Summary of the Invention [Problem to be solved by the invention]
[0005] However, with technology that determines the related information to be presented to the user by narrowing down the search using tags, it is difficult to implement policy control, and it has been difficult to improve the efficiency of business operations.
[0006] The disclosed technology has been made in consideration of the above, and aims to provide an information processing program, an information processing method, and an information processing device that improve the work efficiency of business operations. [Means for solving the problem]
[0007] In one aspect of the information processing program, information processing method, and information processing device disclosed in the present application, the information processing program causes a computer to execute processing according to a sequence including a user's operation using an API. The information processing program generates correspondence information that associates a predetermined policy, a predetermined variable of a first API to which the predetermined policy is applied in the predetermined sequence, and a second API that specifies a value of the predetermined variable selectable by a user, and when executing the second API according to the predetermined sequence, narrows down the execution result of the second API to a value that satisfies the predetermined policy based on the correspondence information, and presents the narrowed down result as a selectable value for the predetermined variable to the user. Effect of the Invention
[0008] In one aspect, the present invention can improve the work efficiency of business. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram of an information processing device. [Diagram 2] FIG. 2 is a diagram showing the flow of the forwarding process of an application for approval. [Diagram 3] FIG. 3 is a diagram showing an example of the forwarding screen. [Figure 4] FIG. 4 is a diagram illustrating an example of an API definition. [Diagram 5] FIG. 5 is a diagram illustrating an example of processing flow information of the WebAPI. [Figure 6] FIG. 6 is a diagram showing an example of a policy setting file. [Figure 7] FIG. 7 is a diagram illustrating an example of the association table. [Figure 8] FIG. 8 is a diagram illustrating an example of narrowing down the execution results. [Figure 9] FIG. 9 is a diagram illustrating a display example of the search results after narrowing down according to the first embodiment. [Figure 10]FIG. 10 is a flowchart of the association process performed by the information processing device according to the first embodiment. [Figure 11] FIG. 11 is a flowchart of a WebAPI execution process that involves narrowing down the execution results. [Figure 12] FIG. 12 is a diagram illustrating an example of an ID token. [Figure 13] FIG. 13 is a diagram illustrating an example of an attribute selection frequency table. [Figure 14] FIG. 14 is a diagram illustrating a display example of the search results after narrowing down according to the second embodiment. [Figure 15] FIG. 15 is a hardware configuration diagram of an information processing device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, an information processing program, an information processing method, and an information processing device disclosed in the present application will be described in detail with reference to the accompanying drawings. Note that the information processing program, the information processing method, and the information processing device disclosed in the present application are not limited to the following embodiments. EXAMPLES
[0011] As a mechanism for digitalizing business operations, for example, a technique has been proposed that cryptographically guarantees the authenticity of a document and its forwarding history when a user forwards a document file using a workflow.
[0012] Furthermore, it is being considered to combine such technology with an Open Policy Agent (OPA) to perform policy control over workflow processing. OPA is a general-purpose policy engine that detects information that violates a set policy and executes a predefined action.
[0013] For example, the following might be some of the policies that exist within an organization. One is that the destination of a document should be a manager, not an ordinary employee. Another is that documents sent to other companies must be approved by a director or above. Another is that certain workflows must be initiated by managers. Yet another is that any workflow that is missing an attachment will be discontinued.
[0014] For example, when a WebAPI is called, OPA acts as a proxy and determines whether the WebAPI call satisfies the policy. If the policy is satisfied, OPA allows the WebAPI call. If the policy is not satisfied, OPA returns an error without allowing the WebAPI call to be made. At this time, OPA can rewrite the parameters and headers at the time of the WebAPI call and pass them to the WebAPI. For example, OPA is defined so that it extracts the user ID from the ID token sent by the user and sends it to the WebAPI. In addition to general attribute information such as the issuer, the ID token can contain user information such as the user ID and user attribute information such as the user's superior.
[0015] The following cases are possible examples of policy control for workflow processing. For example, when forwarding a workflow, it may be necessary to check whether the destination is the sender's superior. When an application is submitted by a senior employee, it may be necessary to check whether the submitter is also a senior employee. When an application is submitted with an attachment, it may be necessary to check whether the application has an attachment. When sending a contract to another company, it may be necessary to check whether the destination includes a person with decision-making authority, such as the president. When an application is required by law to be approved by a person in charge, such as a safety manager, it may be necessary to check whether the destination includes a person in charge.
[0016] However, the specific actions that OPA takes in accordance with policies are set by administrators manually inputting values. Therefore, although it is possible for OPA to impose restrictions on each WebAPI in accordance with policies, it is not easy to input appropriate values so as not to violate the restrictions. For example, while OPA can control according to the internal rules and laws of each company or department, OPA only has the function to impose given restrictions, and the part where the rules are clearly written down and defined and the information is entered is a manual task.
[0017] Possible solutions to this problem in the web browser are to return an error due to restrictions placed on the input form when the user enters data, or to automatically enter values into the input form according to predefined rules. However, with this method, the rule definitions in the entire workflow management system and the restrictions placed on the web browser are not linked, and there is a risk of discrepancies in the rules. This makes it difficult to appropriately control policies for workflow processing, and makes it difficult to improve the efficiency of tasks such as applications that use workflows.
[0018] 1 is a block diagram of an information processing device 1. The information processing device 1 is connected to a user terminal 2 and a workflow processing system 3 via a network.
[0019] The user terminal device 2 is a terminal device used by a user to make an application for approval using the workflow processing system 3. For example, in a company, the user is an employee, and the user terminal device 2 is an employee terminal. The user terminal device 2 transmits a search request to the information processing device 1 and receives a response including the search results. The user terminal device 2 also transmits a request to forward the application form to the information processing device 1, and uses the workflow processing system 3 to process the application form in accordance with the workflow.
[0020] The workflow processing system 3 is a system that executes processing according to a sequence determined by a workflow. For example, the workflow processing system 3 receives a request to forward an application form sent from the user terminal device 2, and sends the application form to an approver specified in the forwarding request to receive approval. The workflow processing system 3 then returns the approved application form to the user terminal device 2 via the information processing device 1.
[0021] The information processing device 1 receives information on operations by a user in a workflow from the user terminal device 2. For example, the information processing device 1 receives an application request in a workflow for forwarding an application from the user terminal device 2. Then, the information processing device 1 executes processing according to a predetermined sequence including the user's operations using a WebAPI. Specifically, the information processing device 1 processes the operations performed by the user according to a set policy using the WebAPI, and causes the workflow processing system 3 to execute processing according to the sequence.
[0022] The following describes in detail the information processing device 1. The information processing device 1 has an OPA 101, a policy storage unit 102, a WebAPI execution unit 103, an information storage unit 104, a variable identification unit 105, an API identification unit 106, a policy identification unit 107, a narrowing down unit 108, a linking database 109, and a linking unit 110. In the following description, a process in which a user transmits an application for approval to the workflow processing system 3 will be described as an example.
[0023] The policy storage unit 102 stores a configuration file indicating policies that are predetermined according to the company rules and laws of each company or department. For example, policies include a policy that a specific application form should be forwarded to a manager rather than to a general employee, and a policy that documents sent to other companies must be approved by a director or higher. Other policies include a policy that a specific workflow must be initiated by a manager, and a policy that a workflow that is missing an attachment for a specific application is prohibited from being forwarded.
[0024] OPA 101 operates as a proxy when various WebAPIs owned by WebAPI execution unit 103 are called. OPA 101 has in advance information on which policy to apply to a specific WebAPI call. When OPA 101 receives a specific WebAPI call, it refers to a determined policy stored in policy storage unit 102 and determines whether the WebAPI call satisfies the policy. If the policy is satisfied, OPA 101 permits the specific WebAPI call. On the other hand, if the policy is not satisfied, OPA 101 does not allow the specific WebAPI call to be made and returns an error to user terminal device 2. Furthermore, OPA 101 permits the WebAPI call for a WebAPI for which no policy is set.
[0025] For example, a case will be described in which there is a policy that specifies that the destination of an application in a specific workflow is the sender's superior. In this case, OPA 101 receives a request to forward an application in a specific workflow from the user terminal device 2. Next, OPA 101 identifies a policy to be applied to the forwarding of the application in that specific workflow from within the policy storage unit 102. OPA 101 checks the rule that the destination of the application in the identified policy is the sender's superior, and determines whether the destination of the received forwarding request is the sender's superior. If the destination is the superior, then the POST, which is a request to the forwarding API running in the WebAPI execution unit 103, is permitted.
[0026] The WebAPI execution unit 103 operates a plurality of WebAPIs, including, for example, a user search API that returns search results corresponding to specified conditions and a forwarding API for forwarding an application according to a workflow.
[0027] Fig. 2 is a diagram showing the flow of the forwarding process of an application to be approved. The operation of the WebAPI execution unit 103 when forwarding a specific application according to a workflow will be described with reference to Fig. 2. Here, the case where OPA 101 permits a WebAPI call will be described. When the WebAPI execution unit 103 receives a request to forward a specific application from the user terminal device 2 via OPA 101, it causes a forwarding screen to be displayed on the user terminal device 2 (step S101).
[0028] Fig. 3 is a diagram showing an example of a forwarding screen. For example, the WebAPI execution unit 103 displays a forwarding screen 201 shown in Fig. 3 on the user terminal device 2. The forwarding screen 201 is provided with a search field and a search button for an approver to whom the request is to be forwarded for approval, and a forwarding button for issuing a forwarding instruction to an approver obtained in the search results. In addition, the WebAPI execution unit 103 can also use a forwarding screen 202 shown in Fig. 3.
[0029] The user inputs search conditions into the forwarding screen displayed on the user terminal device 2 and presses the search button. The user terminal device 2 transmits a search request for approvers according to the search conditions to the WebAPI execution unit 103 via the OPA 101.
[0030] Returning to FIG. 2, the explanation continues. The WebAPI execution unit 103 executes the user search API upon receiving a call for the inspection API due to a search request (step S102). The user search API executes a search according to the specified search conditions. Next, in this embodiment, the user search API requests the narrowing down unit 108 to narrow down the search results according to the policy. The user search API then obtains the narrowed down search results from the narrowing down unit 108. The WebAPI execution unit 103 displays the narrowed down search results on a forwarding screen displayed on the user terminal device 2.
[0031] The user selects an approver to whom the application is to be forwarded from the search results on the forwarding screen displayed on the user terminal device 2. Then, the user presses the forward button to decide to forward the application to the specified destination. The user terminal device 2 transmits a request to forward the application to the specified destination to the WebAPI execution unit 103 via the OPA 101.
[0032] The WebAPI execution unit 103 executes the forwarding API in response to the call of the forwarding API by the forwarding request (step S103). The forwarding API starts execution of forwarding processing for the approver specified as the forwarding destination in the forwarding request.
[0033] The forwarding API requests OPA 101 to determine whether the forwarding destination complies with the policy. OPA 101 checks whether the forwarding destination complies with the rules of the organization by confirming the policy stored in the policy storage unit 102 (step S104). When OPA 101 confirms that the forwarding destination complies with the rules of the organization, the forwarding API requests the workflow processing system 3 to forward the application for approval by the approver designated as the forwarding destination.
[0034] The information storage unit 104 stores API definitions (OpenAPI Specification (OAS) v3, etc.) of each WebAPI owned by the WebAPI execution unit 103. The API definitions can be acquired from specifications created by the creator of the WebAPI. The information storage unit 104 also stores WebAPI processing flow information, such as sequence diagrams showing the flow of processing by each WebAPI according to a workflow and source code for integration tests.
[0035] The variable identification unit 105 performs processing to identify a portion that uses a value selected by a user among the variable portions of each WebAPI possessed by the WebAPI execution unit 103. Specifically, the variable identification unit 105 performs the following processing for each WebAPI possessed by the WebAPI execution unit 103, thereby identifying a portion that uses a value selected by a user.
[0036] The variable identification unit 105 acquires, from the API definition of each WebAPI stored in the information storage unit 104, a list of variables to be POSTed when the WebAPI is executed. FIG. 4 is a diagram showing an example of an API definition. The API definition 210 is an API definition that complies with OAS v3. In the case of OAS v3, variables are listed under properties of each API definition. In the API definition 210, the variables are "userId", "type", "format", and "example". For example, in the case of the API definition 210, the variable identification unit 105 acquires "userId", "type", "format", and "example" as the list of variables to be POSTed.
[0037] Next, the variable identification unit 105 acquires WebAPI processing flow information such as a sequence diagram or a source code of an integration test stored in the information storage unit 104. Then, the variable identification unit 105 determines from the acquired WebAPI processing flow information whether each variable included in the acquired variable list is a value input by a user. Then, the variable identification unit 105 holds information on variables whose values are input by a user.
[0038] FIG. 5 is a diagram showing an example of processing flow information of a WebAPI. For example, the variable specification unit 105 acquires a sequence 220 shown in FIG. 5. Then, the variable specification unit 105 confirms that a userId is selected by the user and that the value is used as an input for the next forwarding API by referring to a process 221 in the sequence 220. As a result, the variable specification unit 105 determines that the variable called userId is a value input by the user. Hereinafter, the variable into which the value is input by the user specified by the variable specification unit 105 is called a "user input variable". This forwarding API is an example of a "first API", and the user input variable is an example of a "predetermined variable". Also, the sequence 220 shown in FIG. 5 is an example of a "predetermined sequence".
[0039] The policy specifying unit 107 acquires information on the user input variables, and then refers to the setting file stored in the policy storage unit 102 to specify a policy for each of the user input variables.
[0040] For example, the variable userId in FIG. 5 will be described. The variable userId in the post method for the forwarding API / workflows / [folowId] / forward is identified as a user input variable. Then, the policy identification unit 107 checks whether or not a policy for the post method for the forwarding API / workflows / [folowId] / forward exists in the policy storage unit 102. FIG. 6 is a diagram showing an example of a policy setting file. The setting file 230 shown in FIG. 6 defines what type of call the policy is used for. In this case, the call format of userId shown in line 231 of the setting file 230 is located in the call format of the forwarding API / workflows / [folowId] / forward, so the policy identification unit 107 identifies that the policy specified in the setting file 230 is a policy for the post method for the forwarding API / workflows / [folowId] / forward. Then, the policy identification unit 107 identifies that the rule indicated in line 232 of the configuration file 230 is a policy for userId, which is a variable in a post method for a forwarding API called / workflows / [followId] / forward. The policy defined in the configuration file 230 is an example of a "predetermined policy."
[0041] The API identification unit 106 acquires information on user input variables. The API identification unit 106 also acquires WebAPI processing flow information, such as a sequence diagram and source code for an integration test, stored in the information storage unit 104. The API identification unit 106 then extracts a WebAPI used when a user selects a value for a user input variable from among the WebAPIs held by the WebAPI execution unit 103, and identifies the WebAPI as the input API for the user input variable.
[0042] For example, the API identification unit 106 acquires userId, which is a variable in a post method for a forwarding API called / workflows / [followId] / forward, as a user input variable. The API identification unit 106 also acquires a sequence 220 shown in Fig. 5. Then, the API identification unit 106 identifies a user search API called / users / seach / as an input API, which is a WebAPI used by the user when selecting a value for userId, which is a variable in a post method for a forwarding API called / workflows / [followId] / forward. This user search API is an example of a "second API."
[0043] The linking unit 110 links the policy for the user input variable identified by the policy identifying unit 107 with the input API for the user input variable identified by the API identifying unit .
[0044] Fig. 7 is a diagram showing an example of a linking table. For example, the linking database 109 has a linking table 240 as shown in Fig. 7. In the linking table 240, information for identifying an input API of a user input variable, a user input variable, a policy corresponding to the user input variable, information on a sequence in which the input API to which the policy is applied is executed, and information on a workflow can be registered.
[0045] For example, the linking unit 110 receives an input of a user input variable and information on a policy for the user input variable from the policy identification unit 107. Then, the linking unit 110 registers the acquired user input variable and information on the policy for the user input variable in a linking table 240 stored in the linking database 109. In this way, the linking unit 110 links the user input variable and the policy for the user input variable and records them.
[0046] Furthermore, the linking unit 110 receives an input of a user input variable and information on the input API of the user input variable from the API identification unit 106. Then, the linking unit 110 registers information on the input API of the user input variable in an already registered row that matches the user input variable in the linking table 240 stored in the linking database 109. As a result, the linking unit 110 links the information on the input API of the user input variable to the user input variable and the policy for that user input variable, and records the information.
[0047] Furthermore, if the application of the policy is restricted to a specific workflow, the linking unit 110 registers information on the specific workflow in a linking table 240 stored in the linking database 109. In this way, the linking unit 110 also links the specific workflow to the user input variable as a condition.
[0048] The narrowing down unit 108 receives input of the execution results of each executed WebAPI together with information on the executed WebAPI, the sequence being executed, and the workflow from the WebAPI execution unit 103. Then, the narrowing down unit 108 checks whether or not a user input variable linked to the WebAPI executed in the specified sequence as an input API exists in the linking database 109. Here, if there is no user input variable with the WebAPI executed in the specified sequence as the input API, the narrowing down unit 108 returns a notification of no narrowing down to the WebAPI execution unit 103.
[0049] On the other hand, if there is a user input variable that has the WebAPI executed in the specified sequence as the input API, the narrowing down unit 108 acquires a policy for that user input variable from the linking database 109. Here, the narrowing down unit 108 checks information about the specific workflow linked as a condition, and if the workflow being executed is not included in the specific workflow, returns a notification of no narrowing down to the WebAPI execution unit 103.
[0050] On the other hand, if there is no workflow condition or if the workflow condition is satisfied, the narrowing down unit 108 narrows down the execution results in accordance with the acquired policy. After that, the narrowing down unit 108 outputs the narrowed down execution results to the WebAPI execution unit 103.
[0051] 8 is a diagram showing an example of narrowing down of execution results. For example, narrowing down of search results by a user search API called / users / search / will be described. The narrowing down unit 108 acquires search results 251 as an execution result of the user search API called / users / search / . Information written in the search results 251 is a UUID that is person identification information. The narrowing down unit 108 also acquires / users / search / as information on the executed WebAPI, and acquires forwarding as information on the sequence.
[0052] Next, the narrowing down unit 108 refers to the linking table 24 shown in Fig. 7 and specifies that the user input variable linked with the user search API / users / search / as the input API when the sequence is forwarded is userId. Then, the narrowing down unit 108 narrows down the information of the search result 251 to information that matches token.payload.superiors, that is, the superior of the user. Here, the narrowing down unit 108 may hold information in which the attributes of employees are registered together with the UUIDs of employees in the case of an organization and narrow down the results using the information, or may use external information such as an employee database.
[0053] For example, when the user has one superior, the narrowing down unit 108 acquires the narrowing down result 252. Then, the narrowing down unit 108 transmits the narrowing down result 252 to the WebAPI execution unit 103 to display it on the user terminal device 2. FIG. 9 is a diagram showing an example of a display of the search results after narrowing down according to the first embodiment. For example, when the approver search requires that the approver be a superior and the user has one superior, the user terminal device 2 displays the forwarding screen 203 shown in FIG. 9 in a state in which one approver has been selected by the WebAPI execution unit 103. When there is one search result in this way, the automatically narrowed down one search result may be selected.
[0054] 10 is a flowchart of the association process by the information processing device according to the embodiment 1. Next, the flow of the association process by the information processing device 1 according to the embodiment 1 will be described with reference to FIG.
[0055] The variable specification unit 105 selects one WebAPI from among the WebAPIs that the WebAPI execution unit 103 has and that have not been selected (step S1).
[0056] Next, the variable specification unit 105 acquires an API definition of the selected WebAPI from the information storage unit 104. Then, based on the API definition, the variable specification unit 105 acquires a list of variables to be POSTed when the selected WebAPI is executed (step S2).
[0057] Next, the variable identification unit 105 selects one unselected variable from the acquired list of variables (step S3).
[0058] Next, the variable identification unit 105 acquires WebAPI process flow information such as a sequence diagram and source code of an integration test from the information storage unit 104. Then, the variable identification unit 105 determines whether the variable selected from the WebAPI process flow information is a value input by the user and is a user input variable (step S4). If the selected variable is not a user input variable (step S4: No), the linking process proceeds to step S9.
[0059] On the other hand, if the selected variable is a user input variable (step S4: Yes), the policy identifying unit 107 acquires information on the selected API and information on the user input variable from the variable identifying unit 105. Then, the policy identifying unit 107 refers to the setting file stored in the policy storage unit 102 and determines whether or not a policy corresponding to the selected API exists (step S5). If no policy corresponding to the selected API exists (step S5: No), the linking process proceeds to step S9.
[0060] On the other hand, if a policy corresponding to the selected API exists (step S5: Yes), the policy identifying unit 107 extracts a policy corresponding to the user input variable from the policies corresponding to the selected API. Then, the policy identifying unit 107 associates the user input variable with the extracted policy and records them in the association database 109 (step S6).
[0061] The API identification unit 106 acquires information on the selected API and information on the user input variables from the variable identification unit 105. The API identification unit 106 also acquires processing flow information on the WebAPI, such as a sequence diagram or source code for an integration test, from the information storage unit 104. Then, using the processing flow information on the WebAPI, the API identification unit 106 determines whether or not there is a WebAPI that the user can use to select a value for the user input variable (step S7). If there is no WebAPI that the user can use to select a value for the user input variable (step S7: No), the linking process proceeds to step S9.
[0062] On the other hand, if there is a Web API used when the user selects the value of the user input variable (step S7: Yes), the API identification unit 106 sets the Web API used when the user selects the value of the user input variable as the input API of the user input variable.Then, the API identification unit 106 links the input API to the user input variable and records it in the linking database 109 (step S8).
[0063] The variable specification unit 105 judges whether or not the linking consideration for all variables included in the acquired variable list is completed (step S9). If there are variables for which the linking consideration has not been performed (step S9: No), the linking process returns to step S3.
[0064] On the other hand, if the consideration of linking for all variables included in the acquired list of variables has been completed (step S9: Yes), the variable identification unit 105 determines whether the consideration of linking of variables for all WebAPIs possessed by the WebAPI execution unit 103 has been completed (step S10).
[0065] If there are any WebAPIs remaining for which the variable linkage has not been examined (step S10: No), the linkage process returns to step S1. On the other hand, if the variable linkage examination for all WebAPIs possessed by the WebAPI execution unit 103 has been completed (step S10: Yes), the linkage process ends.
[0066] Fig. 11 is a flowchart of the WebAPI execution process with execution result narrowing. Next, the flow of the WebAPI execution process with execution result narrowing will be described with reference to Fig. 11. Here, the case where there are no workflow conditions and user input variables are used will be described.
[0067] The WebAPI execution unit 103 receives an API call made from the user terminal device 2 via the OPA 101 (step S11). Then, the WebAPI execution unit 103 executes the called WebAPI.
[0068] The narrowing down unit 108 refers to the information stored in the association database 109 and determines whether or not there is a user input variable that has the executed WebAPI as an input API (step S12).
[0069] If there is no user input variable that has the executed WebAPI as the input API (step S12: No), the narrowing down unit 108 returns a notification that there is no narrowing down to the WebAPI execution unit 103. The WebAPI execution unit 103 outputs the execution result to the user terminal device 2 (step S17). After that, the WebAPI execution process ends.
[0070] On the other hand, if there is a user input variable that has the executed WebAPI as the input API (step S12: Yes), the narrowing down unit 108 acquires a policy for the user input variable from the association database 109. Then, the narrowing down unit 108 narrows down the execution results by the WebAPI so as to conform to the acquired policy (step S13).
[0071] Next, the narrowing-down unit 108 determines whether or not the result of the narrowing-down is one (step S14). If the result of the narrowing-down is multiple (step S14: No), the WebAPI execution process proceeds to step S16.
[0072] On the other hand, if there is one narrowed-down result (step S14: Yes), the narrowing-down unit 108 determines that the narrowed-down result has been selected by the user (step S15).
[0073] Thereafter, the narrowing-down unit 108 outputs the execution result after narrowing down to the user terminal device 2 (step S16).
[0074] As described above, the information processing device according to the present embodiment identifies user input variables, among the variables used in the WebAPI, whose values are given by input from the user. Next, the information processing device identifies a policy and an input API corresponding to the user input variable, links them to the user input variable, and records them in a linking database. Then, when a WebAPI is executed and there is a user input variable that has the executed WebAPI as an input API, the information processing device narrows down the execution results of the WebAPI in accordance with the policy for the user input variable and provides them to the user.
[0075] This allows the execution results used by the user to select the value of a variable to be automatically narrowed down in accordance with the policy, and the user can select the value of the variable from information that is in accordance with the policy. In other words, the user can easily input data that does not cause inconsistency with policies created based on company rules and laws. Furthermore, when a policy is changed, the policy corresponding to the user input variable can be automatically processed. This allows the narrowing down process to automatically follow changes in policy, making it easy to follow changes in policy. Therefore, it is possible to improve the work efficiency of business operations that use workflows. EXAMPLES
[0076] Next, a second embodiment will be described. The information processing device 1 according to this embodiment is also shown in the block diagram of FIG. 1. The information processing device 1 according to this embodiment sorts the narrowed down execution results in order of the likelihood that the user will use them, and provides them to the user. The sorting of the execution results by the information processing device 1 according to this embodiment will be described below. In the following description, the same operations as those of the components in the first embodiment will be omitted.
[0077] The narrowing down unit 108 acquires a value selected from the narrowed down execution results together with the ID token of the user who made the selection from the WebAPI execution unit 103. The ID token is generated anew every time the user logs in and transmitted to the user terminal device 2. Specifically, the ID token is generated by a program (authentication infrastructure) that manages IDs and the like in the information processing device 1. Next, the narrowing down unit 108 acquires information on an attribute including the selected value from the ID token. Then, the narrowing down unit 108 associates the acquired attribute with the input API stored in the association database 109 and records the number of times it has been selected.
[0078] Fig. 12 is a diagram showing an example of an ID token. For example, a case will be described where narrowing down is performed on the execution result by the input API to which ID1 in the association table 240 in Fig. 7 is given. The narrowing down unit 108 acquires the ID token 301 in Fig. 12 as the ID token of the user who made the selection. In addition, the narrowing down unit 108 acquires "befd59ba-6481-c568-35be-91d57cdc24f0" as the value selected by the user.
[0079] The ID token 301 includes information on the user's superiors, and the department and team to which the user belongs. The narrowing down unit 108 can confirm from the ID token 301 that the person represented by befd59ba-6481-c568-35be-91d57cdc24f0 is a member and manager of the department to which the user belongs, and further, that the narrowing down unit 108 is a member of the team to which the user belongs.
[0080] Fig. 13 is a diagram showing an example of an attribute selection count table. The narrowing down unit 108 stores an attribute selection count table 302 shown in Fig. 13 in the linking database 109 in association with the narrowed down linking table 240 in Fig. 7. Here, the ID of the attribute selection count table 302 matches the ID of the linking table 240 in Fig. 7. The narrowing down unit 108 registers the number of times each attribute has been selected in the attribute selection count table 302.
[0081] For example, as described above, a case will be described in which a person who is a member and manager of the department to which the user belongs and a member of the team to which the user belongs is selected from the execution result of the input API of ID1. In this case, the narrowing down unit 108 increments the numbers of department.members, department.managers, and team.menbers in the row of ID1 in the attribute selection count table 302 by one each. department.members represents the members of the department to which the user belongs, department.managers represents the managers of the department to which the user belongs, and team.menbers represents the members of the team to which the user belongs. The narrowing down unit 108 can record the number of times each attribute is selected by updating the attribute selection count table 302 every time the WebAPI is executed.
[0082] Then, after narrowing down the WebAPI execution results, the narrowing down unit 108 acquires the number of times each attribute corresponding to the user input variable used for the narrowing down from the association database 109. Then, the narrowing down unit 108 sorts the narrowed down execution results in order of the values included in the frequently used attributes.
[0083] For example, in the case of narrowing down the execution results of the input API of ID2 in the attribute selection frequency table 302 in Fig. 13, the narrowing down unit 108 sorts the narrowing down results so that information matching a value present in the team.members list in the ID token of the user comes to the top. Also, when there are multiple attributes, the narrowing down unit 108 sorts the narrowing down results in descending order of value so that information included in as many attributes as possible comes to the top. Also, when the frequency of use of attributes is the same, the narrowing down unit 108 sorts the narrowing down results in ascending order of value included in the attribute in the ID token of the user. This allows the narrowing down unit 108 to give priority to attributes that can be narrowed down more.
[0084] Thereafter, the narrowing down unit 108 outputs the sorted narrowing down results to the WebAPI execution unit 103. As a result, the sorted narrowing down results are displayed on the user terminal device 2, and the user can check the values to be used for the user input variables in order of frequency of use.
[0085] Fig. 14 is a diagram showing a display example of the search results after narrowing down according to the embodiment 2. For example, the user terminal device 2 displays a forwarding screen 303 shown in Fig. 14 in which managers in the same team are preferentially displayed at the top of the search results.
[0086] As described above, the information processing device according to the present embodiment provides the narrowed-down results to the user by sorting them according to the frequency of use of the attributes of each value. This allows the user to easily find values that are likely to be selected, thereby improving work efficiency.
[0087] (Hardware configuration) 15 is a hardware configuration diagram of the information processing device 1. Next, an example of a hardware configuration for realizing each function of the information processing device 1 will be described with reference to FIG.
[0088] 15, the information processing device 1 includes, for example, a CPU (Central Processing Unit) 91, a memory 92, a hard disk 93, and a network interface 94. The CPU 91 is connected to the memory 92, the hard disk 93, and the network interface 94 via a bus.
[0089] The network interface 94 is an interface for communication between the information processing device 1 and an external device. The network interface 94 relays communication between the user terminal device 2 and the workflow processing system 3 and the CPU 91, for example.
[0090] The hard disk 93 is an auxiliary storage device. The hard disk 93 realizes the functions of the policy storage unit 102 and the association database 109 illustrated in Fig. 1. The hard disk 93 also stores programs for realizing the functions of the OPA 101, the policy storage unit 102, the WebAPI 103, the information storage unit 104, the variable specification unit 105, the API specification unit 106, the policy specification unit 107, the narrowing down unit 108, the association database 109, and the association unit 110 illustrated in Fig. 1.
[0091] The memory 92 is a main storage device, and may be, for example, a dynamic random access memory (DRAM).
[0092] The CPU 91 reads out various programs from the hard disk 93, and deploys and executes them in the memory 92. In this way, the CPU 91 realizes the functions of the OPA 101, the policy storage unit 102, the WebAPI 103, the information storage unit 104, the variable identification unit 105, the API identification unit 106, the policy identification unit 107, the narrowing down unit 108, the association database 109, and the association unit 110 illustrated in FIG. [Explanation of symbols]
[0093] 1. Information processing device 2 User terminal device 3. Workflow Processing System 101 OPA 102 Policy repository 103 WebAPI Execution Department 104 Information Storage Unit 105 Variable Identification Section 106 API specific part 107 Policy Specific Section 108 Narrowing section 109 Linked Database 110 Stringing section
Claims
1. An information processing program that causes a computer to execute a process according to a sequence including a user's operation using an API, generating correspondence information that associates a predetermined policy with a predetermined variable of a first API to which the predetermined policy is applied in a predetermined sequence, and a second API that specifies a value of the predetermined variable that can be selected by a user; When the second API is executed according to the predetermined sequence, a result of the execution of the second API is narrowed down to a value that satisfies the predetermined policy based on the correspondence information; Present the narrowed down results as selectable values for the predetermined variable to the user. An information processing program that causes the computer to execute a process.
2. The process of generating the correspondence information includes: Extracting variables in the first API based on an API definition of the first API; Identifying a predetermined policy to be applied to the predetermined variable among a plurality of policies based on setting information of each of the plurality of policies registered in advance; Identifying the second API based on information of the predetermined sequence; The specified policy, the specified variable, and the specified second API are associated with each other to generate the association information.
2. The information processing program according to claim 1, further comprising a process for:
3. The process of presenting the narrowed down results to the user includes: If the execution result is narrowed down to one specific value, the specific value is deemed to have been selected by the user, and information to be presented to the user is generated.
2. The information processing program according to claim 1, further comprising a process for:
4. The process of presenting the narrowed down results to the user includes: When the execution result is narrowed down to a plurality of values, attribute information of each of the plurality of values is acquired, and the plurality of values are sorted in order of the attribute information having a high frequency of selection and presented to the user.
2. The information processing program according to claim 1, further comprising a process for:
5. An information processing device that executes a process according to a sequence including a user's operation using an API, generating correspondence information that associates a predetermined policy with a predetermined variable of a first API to which the predetermined policy is applied in a predetermined sequence, and a second API that specifies a value of the predetermined variable that can be selected by a user; When the second API is executed according to the predetermined sequence, a result of the execution of the second API is narrowed down to a value that satisfies the predetermined policy based on the correspondence information; Present the narrowed down results as selectable values for the predetermined variable to the user.
2. An information processing method comprising:
6. an API execution unit that executes a process according to a sequence including a user's operation by using an API; a linking unit that generates correspondence information that associates a predetermined policy, a predetermined variable of a first API to which the predetermined policy is applied in a predetermined sequence, and a second API that specifies a value of the predetermined variable that can be selected by a user; a narrowing down unit that narrows down an execution result of the second API to a value that satisfies the predetermined policy based on the correspondence information when the second API is executed according to the predetermined sequence, and causes the API execution unit to present the narrowed down result to a user as a selectable value for the predetermined variable; An information processing device comprising:
Citation Information
Patent Citations
Task managing device and task management program
JP2011192078A
