[go: up one dir, main page]

JP2024149188A - Information processing system, information processing method, and program - Google Patents

Information processing system, information processing method, and program Download PDF

Info

Publication number
JP2024149188A
JP2024149188A JP2023062910A JP2023062910A JP2024149188A JP 2024149188 A JP2024149188 A JP 2024149188A JP 2023062910 A JP2023062910 A JP 2023062910A JP 2023062910 A JP2023062910 A JP 2023062910A JP 2024149188 A JP2024149188 A JP 2024149188A
Authority
JP
Japan
Prior art keywords
developer
information
screen
displayed
execution environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023062910A
Other languages
Japanese (ja)
Inventor
文洋 柴本
Fumihiro Shibamoto
勲 上田
Isao Ueda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Marketing Japan Inc
Canon IT Solutions Inc
Original Assignee
Canon Marketing Japan Inc
Canon IT Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Marketing Japan Inc, Canon IT Solutions Inc filed Critical Canon Marketing Japan Inc
Priority to JP2023062910A priority Critical patent/JP2024149188A/en
Publication of JP2024149188A publication Critical patent/JP2024149188A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

To provide a control method and a program of an information processing system allowing a developer to develop applications anywhere on a terminal connected to the Internet.SOLUTION: An information processing system includes: a developer terminal operated by a developer user; a development environment, the multi-tenant environment; an execution environment constructed by combining a plurality of Web services (cloud services); single-tenant execution environments 1 to 3 in which an application developed by a developer, the owner, using the development environment is deployed; and an application user terminal used by the user who uses the application. The developer logs into the development environment, receives a client program and application definitions (UI definition information), the content saved by performing the development work in the past, performs an operation for newly designing an application or an operation for updating the design of an existing application, and stores definition information of the application as a result thereof in the development environment.SELECTED DRAWING: Figure 1

Description

情報処理システム、情報処理システムの制御方法、及びプログラム関し、特に、アプリケーションソフトウェアの構築のために用いて好適な技術に関する。 This relates to information processing systems, control methods for information processing systems, and programs, and in particular to technologies suitable for use in building application software.

従来、プログラミング言語によるコード記述が不要または少なくてよいノーコード開発ツール/ローコード開発ツールとして、定義に従ってアプリケーションソフトウェア(以下、アプリケーションと称する)を構築するアプリケーション構築ツールが存在する。 Conventionally, there are no-code/low-code development tools that do not require or require little coding in a programming language, and application construction tools that build application software (hereinafter referred to as "applications") according to a definition.

特許文献1には、生成されたアプリケーションパッケージをユーザーにダウンロード提供することが開示されている。 Patent document 1 discloses providing the generated application package to the user for download.

特開2019-8598号公報JP 2019-8598 A

特許文献1の方法でファイルをダウンロードする場合、サーバーに配置されたファイルをダウンロードすることしかできない。また、動的にデータを生成しダウンロードさせる場合は、アプリケーションの開発者は複雑な処理を記述する必要がある。そのため、ダウンロード処理を含む画面の生成を汎用性の高い方法で実現できなかった。 When downloading a file using the method of Patent Document 1, it is only possible to download files that are located on a server. Furthermore, when dynamically generating and downloading data, the application developer must write complex processing. As a result, it has not been possible to generate a screen that includes download processing in a versatile manner.

そこで、本発明は、データのダウンロードに係る所望する処理を実行するアプリケーションを容易に構築する仕組みを提供することを目的とする。 The present invention aims to provide a mechanism for easily building an application that executes the desired processing related to downloading data.

本発明の情報処理システムは、
アプリケーション画面に配置するコンポーネントの処理内容についての指示を受け付けるように制御する受付制御手段と、
前記コンポーネントを表示する画面を含むアプリケーションを構築するように制御する構築制御手段と、
前記コンポーネントがデータのダウンロードに係るコンポーネントの場合であって、前記構築制御手段により構築されたアプリケーションのユーザーから前記コンポーネントに対する操作を受け付けた場合、前記受付制御手段により受け付けた処理内容に基づいて処理を実行するように制御する実行制御手段と
を備えることを特徴とする。
The information processing system of the present invention comprises:
A reception control means for controlling reception of instructions regarding the processing contents of components to be arranged on an application screen;
A construction control means for controlling construction of an application including a screen displaying the component;
When the component is a component related to data downloading, the construction control means is characterized in that it comprises an execution control means for controlling, when an operation on the component is received from a user of an application constructed by the construction control means, to execute processing based on the processing content received by the reception control means.

本発明によれば、データのダウンロードに係る所望する処理を実行するアプリケーションを容易に構築することができる。 The present invention makes it easy to build an application that executes the desired processing related to downloading data.

情報処理システムのシステム構成図である。FIG. 1 is a system configuration diagram of an information processing system. 開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201のハードウェアブロック図である。FIG. 2 is a hardware block diagram of a developer terminal 100, an application user terminal 200, and an application user terminal 201. ログイン処理のフローチャートである。13 is a flowchart of a login process. UIエディタ処理のフローチャートである。13 is a flowchart of a UI editor process. ログイン処理とUIエディタ処理における表示例である。13 is a display example in login processing and UI editor processing. UIエディタ処理におけるタブ部品とAppBarの表示例である。13 is a display example of a tab part and an AppBar in a UI editor process. コンテキストメニュー処理のフローチャートである。13 is a flowchart of a context menu process. アクションボード処理のフローチャートである。13 is a flowchart of an action board process. アクションボード処理を説明するための表示例である。13 is a display example for explaining an action board process. アクションボード処理における表示例である。13 is a display example in action board processing. 開発環境300が生成するソースコードの例である。3 is an example of source code generated by the development environment 300. 画面切替処理のフローチャートである。13 is a flowchart of a screen switching process. アプリのユーザー情報の表示にかかる、開発者用端末100、開発環境300、実行環境400においてそれぞれ実行される処理のフローチャートである。11 is a flowchart of processes executed in the developer terminal 100, the development environment 300, and the execution environment 400, respectively, for displaying user information of an application. (a)開発者情報301の具体例である。(b)マルチテナント実行環境のユーザー情報411の具体例である。(c)シンブルテナント実行環境のユーザー情報の具体例である。1A is a specific example of developer information 301. FIG. 1B is a specific example of user information 411 in a multi-tenant execution environment. FIG. 1C is a specific example of user information in a single tenant execution environment. ユーザー情報の表示例である。13 is an example of user information display. ワークフロー処理のフローチャートである。1 is a flowchart of a workflow process. ワークフロー処理にかかる表示例である。13 is a display example relating to a workflow process. ワークフロー処理によって生成されるデータベース、UI部品、アクションの表示例である。11 is a display example of a database, UI parts, and actions generated by workflow processing. キャンバスのコンテキストメニュー処理のフローチャートである。13 is a flowchart of a canvas context menu process. CRUD生成処理にかかる表示例である。13 is a display example relating to the CRUD generation process. CRUD生成処理によって生成されるデータベース、アクション、関数の表示例である。13 is a display example of databases, actions, and functions generated by the CRUD generation process. 開発者アカウント登録処理のフローチャートである。13 is a flowchart of a developer account registration process. 実行環境におけるDBセットの詳細である。1 shows details of a DB set in an execution environment. デプロイ処理のフローチャートである。13 is a flowchart of a deployment process. モバイル用アプリをデプロイする場合の表示例である。This is a display example when deploying a mobile app. テンプレート画面に関するUIエディタ画面における表示例である。13 is a display example of a UI editor screen relating to a template screen. テンプレート画面のキャンバスにおける表示例である。13 is a display example on a canvas of a template screen. プロパティボックスの表示例である。This is an example of the property box. アクションが入力されたアクションボートの表示例である。13 is a display example of an action board in which an action has been input. データグリッドのコンテキストメニュー処理のフローチャートである。13 is a flowchart of a data grid context menu process. データグリッドのプロパティボックスにかかる表示例である。This is an example of the display in the property box of a data grid. データグリッドのアクションボードにかかる表示例である。This is an example of a display on the action board of a data grid. アクションの実行にかかるフローチャートである。13 is a flowchart showing the execution of an action. アクションの情報を含むUI定義情報の遷移図である。FIG. 11 is a transition diagram of UI definition information including action information. 変形例におけるアクションの実行にかかるフローチャートである。13 is a flowchart showing the execution of an action in a modified example. 変形例におけるアクションの情報を含むUI定義情報の遷移図である。FIG. 11 is a transition diagram of UI definition information including action information in the modified example. アップロード・ダウンロード処理にかかるフローチャートである。13 is a flowchart illustrating an upload/download process. アップロードにかかるコンポーネントの設定の表示例である。This is an example of component settings related to upload. アップロード処理にかかるアクションボードの表示例である。13 is a display example of an action board related to upload processing. アプリユーザーによるファイルアップロードの操作例である。This is an example of a file upload operation by an app user. アップロード処理にかかるアクション実行結果例である。13 is a diagram showing an example of an action execution result related to upload processing. ダウンロード処理にかかるアクションボードの表示例である。13 is a display example of an action board related to a download process. ダウンロード処理を実行可能な画面の表示例である。13 is a display example of a screen on which a download process can be executed.

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The embodiments are described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be combined in any desired manner. In addition, the same reference numbers are used for the same or similar configurations, and duplicate descriptions are omitted.

以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。なお、以下において、「アプリケーション」、「アプリ」は、いずれも、アプリケーションソフトウェアを意味するものとする。 The various features shown in the following embodiments can be combined with each other. In the following, "application" and "app" both refer to application software.

<システム構成>
図1に、本発明の実施形態としての情報処理システムのシステム構成図を示す。図1には、ソフトウェア開発を行うためのシステムと、開発されたソフトウェアを使用するためのシステムとを示す。
<System Configuration>
A system configuration diagram of an information processing system according to an embodiment of the present invention is shown in Fig. 1. Fig. 1 shows a system for developing software and a system for using the developed software.

開発者用端末100は、パーソナルコンピュータ(以下、PC)やスマートフォンなどで構成可能な開発者ユーザーが操作する情報処理装置(情報処理端末)である。すなわち、開発者ユーザーのユーザー端末である。開発者用端末100は、開発するアプリケーションの設計操作を開発者から受け付け、設計された内容であるアプリケーションの各種定義情報を開発環境300に送信する。 The developer terminal 100 is an information processing device (information processing terminal) operated by a developer user that can be configured using a personal computer (hereinafter referred to as PC) or a smartphone. In other words, it is a user terminal of the developer user. The developer terminal 100 accepts design operations for the application to be developed from the developer, and transmits various definition information for the application, which is the designed content, to the development environment 300.

開発環境300はネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。開発環境300はマルチテナントの環境であり、複数の開発者ユーザーがログイン可能な環境である。開発環境300は、開発者情報301、実行エンジン302、ストレージ320を含む。開発環境300は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。 The development environment 300 is an environment that uses at least one hardware resource built on a network (on the cloud, on the Internet). The development environment 300 is a multi-tenant environment, and multiple developer users can log in to it. The development environment 300 includes developer information 301, an execution engine 302, and storage 320. The development environment 300 is built by combining multiple web services (cloud services).

開発者情報301は、開発者のアカウントIDとなるメールアドレス(ユーザーID)、パスワードなどの、開発環境300にログイン可能な開発者のアカウントを記録した情報である。開発者情報301は開発環境300に含まれる少なくとも1つの記録媒体に記録されている。開発者情報301の詳細については図14(a)を用いて後述する。 Developer information 301 is information that records the developer's account that can log in to development environment 300, such as an email address (user ID) that serves as the developer's account ID, and a password. Developer information 301 is recorded in at least one recording medium included in development environment 300. Details of developer information 301 will be described later with reference to FIG. 14(a).

実行エンジン302は、開発環境300で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ303とメモリ304を含む。プロセッサ303は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ304は、プロセッサ303が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、開発環境300が実行するものとして説明するものは、実行エンジン302が実行する。すなわち、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。 The execution engine 302 is at least one hardware resource for executing the processing to be executed in the development environment 300, and includes a processor 303 and a memory 304. The processor 303 is composed of at least one processor, and may be a single processor on the cloud, or a processor group combining multiple processors. The memory 304 is at least one recording medium on which a program to be executed by the processor 303 is recorded. Among the various flowcharts described below, those described as being executed by the development environment 300 are executed by the execution engine 302. In other words, the program recorded in the memory 304 is expanded by the processor 303 into an area of the development environment 300 that serves as a work memory, and executed.

配信エンジン305は、開発環境300にアクセスした開発者用端末100に対して、開発者用端末100において実行すべきクライアント用プログラム322(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム322は、開発環境300に含まれるストレージ320に予め記録されている。 The distribution engine 305 transmits a client program 322 (such as HTML source code or JavaScript source code) to be executed on the developer terminal 100 to the developer terminal 100 that has accessed the development environment 300. The client program 322 is pre-recorded in the storage 320 included in the development environment 300.

ストレージ320は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、各開発者に共通であるクライアント用プログラム322を記憶している。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば、ログイン可能な開発者として開発者A、開発者B、開発者Cがいる場合には、開発者Aのための領域である開発者A領域323、開発者Bのための領域である開発者B領域324、開発者Cのための領域である開発者C領域325が含まれる。各開発者用領域には、各開発者が開発したアプリの定義情報を記憶している。例えば、既発者A領域323にはアプリ定義323a(図34で後述するアプリのUI定義情報、アプリの実行環境用プログラム含む)が記録されている。 Storage 320 is a memory area of at least one recording medium, and stores at least a client program 322 that is common to each developer. It also has a developer area, which is a memory area for each developer account. For example, if there are developer A, developer B, and developer C as developers who can log in, it includes developer A area 323, which is an area for developer A, developer B area 324, which is an area for developer B, and developer C area 325, which is an area for developer C. Each developer area stores definition information for the app developed by each developer. For example, developer A area 323 stores app definition 323a (including app UI definition information and app execution environment program, which will be described later in FIG. 34).

開発者は、開発者用端末100のブラウザソフトから、開発環境300にアクセスするためのURLにアクセスすることで開発環境300にアクセスし、開発環境にログインする。開発環境にログインすると、開発環境から、クライアント用プログラム322と、過去に開発作業を行って保存していた内容であるアプリ定義(UI定義情報)を受信する。そして、新規にアプリケーションを設計する操作、あるいは、既存の(作りかけの)アプリケーションの更新設計をする操作を行い、その結果であるアプリの定義情報(アプリ定義、UI定義情報)を開発環境300に送信する。開発環境300は受信したアプリ定義を、その開発者用領域に保存する。このように、本実施形態では、クラウド上の開発環境300にアクセスすることが可能な端末であればどのような端末であっても開発者用端末100として利用してアプリケーションの設計を行うことができる。従って、インターネットに接続することが可能な端末さえあれば、開発者は場所を選ばずにアプリケーションの開発を行うことができる。 The developer accesses the development environment 300 by accessing the URL for accessing the development environment 300 from the browser software of the developer terminal 100, and logs in to the development environment. When the developer logs in to the development environment, the developer receives the client program 322 and the application definition (UI definition information) that is the content of the past development work and saved from the development environment. The developer then performs an operation to design a new application or an operation to update and design an existing (in-progress) application, and sends the resulting application definition information (application definition, UI definition information) to the development environment 300. The development environment 300 saves the received application definition in its developer area. In this way, in this embodiment, any terminal that can access the development environment 300 on the cloud can be used as the developer terminal 100 to design an application. Therefore, as long as there is a terminal that can connect to the Internet, the developer can develop an application regardless of location.

実行環境400は、ネットワーク上(クラウド上、インターネット上)に構築された少なくとも1つのハードウェア資源を用いた環境である。実行環境400はマルチテナント実行環境410と、複数のシングルテナント実行環境(例えば、シングルテナント実行環境450、460、470)を含む。実行環境400は、複数のWebサービス(クラウドサービス)を組み合わせて構築される。実行環境400には、開発者用端末100と開発環境300を用いて開発されたアプリケーションの定義情報(アプリ定義)がデプロイされるための環境である。そして、アプリケーションを使用するユーザーが用いるアプリユーザー用端末200、201は、アプリケーションの実行のためのURLにアクセスすることで、実行環境400にアクセスする。そして、アプリユーザー用端末200、201で行われた操作に応じた各種アクションを実行環境400が実行することで、開発されたアプリケーションが実行され、アプリユーザーにアプリケーションの機能が提供される。ネットワーク上にある実行環境400に構築されるアプリケーションはいわゆるWEBアプリケーションである。 The execution environment 400 is an environment using at least one hardware resource constructed on a network (on a cloud or on the Internet). The execution environment 400 includes a multi-tenant execution environment 410 and multiple single-tenant execution environments (for example, single-tenant execution environments 450, 460, 470). The execution environment 400 is constructed by combining multiple Web services (cloud services). The execution environment 400 is an environment for deploying definition information (application definition) of an application developed using the developer terminal 100 and the development environment 300. The application user terminals 200 and 201 used by users who use the application access the execution environment 400 by accessing a URL for executing the application. The execution environment 400 executes various actions according to operations performed on the application user terminals 200 and 201, thereby executing the developed application and providing the application user with the functions of the application. The application constructed in the execution environment 400 on the network is a so-called WEB application.

マルチテナント実行環境410は、複数の開発者に共用されるマルチテナント環境の実行環境であり、複数の開発者によって開発されたアプリケーションがデプロイされる。すなわち、複数の開発者によって共有される環境であり、複数の開発者の複数のアプリを構築可能な環境である。マルチテナント実行環境410には、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433を含む。 The multi-tenant execution environment 410 is a multi-tenant execution environment shared by multiple developers, in which applications developed by multiple developers are deployed. In other words, it is an environment shared by multiple developers, in which multiple apps by multiple developers can be built. The multi-tenant execution environment 410 includes user information 411, an execution engine 412, a distribution engine 415, storage 420, and a DB set 433.

ユーザー情報411は、デプロイされたアプリケーション(構築されたアプリケーション)のユーザーアカウントIDとなるメールアドレス(ユーザーネーム)、パスワードなどの、アプリケーションにログイン可能なアプリユーザーのアカウントを記録した情報である。ユーザー情報411はマルチテナント実行環境410に含まれる少なくとも1つの記録媒体に記録されている。 User information 411 is information that records the account of an app user who can log in to an application, such as an email address (username) that serves as the user account ID for the deployed application (constructed application) and a password. User information 411 is recorded in at least one recording medium included in the multi-tenant execution environment 410.

実行エンジン412は、マルチテナント実行環境410で実行すべき処理を実行するための少なくとも1つのハードウェア資源であり、プロセッサ413とメモリ414を含む。プロセッサ413は少なくとも1つのプロセッサからなり、クラウド上の1つのプロセッサでもよいし、複数のプロセッサを組み合わせたプロセッサ群としても良い。メモリ414は、プロセッサ413が実行すべきプログラムを記録した少なくとも1つの記録媒体である。後述する各種フローチャートのうち、マルチテナント実行環境410が実行するものとして説明するものは、実行エンジン412が実行する。すなわち、メモリ414に記録されたプログラムを、プロセッサ413がマルチテナント実行環境410のうちワークメモリとなる領域に展開して実行することにより実現する。ここで実行されるプログラムは、アプリケーションのアクションを実行するプログラムを含む。 The execution engine 412 is at least one hardware resource for executing processing to be executed in the multitenant execution environment 410, and includes a processor 413 and a memory 414. The processor 413 is composed of at least one processor, and may be a single processor on the cloud, or may be a processor group combining multiple processors. The memory 414 is at least one recording medium on which a program to be executed by the processor 413 is recorded. Among the various flowcharts described below, those described as being executed by the multitenant execution environment 410 are executed by the execution engine 412. In other words, the processor 413 deploys and executes the program recorded in the memory 414 in an area of the multitenant execution environment 410 that serves as a work memory. The program executed here includes a program that executes the action of an application.

配信エンジン415は、マルチテナント実行環境410にアクセスしたアプリユーザー用端末200、201に対してアプリユーザー用端末200、201において実行すべきクライアント用プログラム422(HTMLのソースコードやJavaScriptのソースコードなど)を送信する。クライアント用プログラム422は、実行環境410に含まれるストレージ420に予め記録されている。 The distribution engine 415 transmits a client program 422 (such as HTML source code or JavaScript source code) to be executed on the application user terminal 200, 201 to the application user terminal 200, 201 that has accessed the multi-tenant execution environment 410. The client program 422 is pre-recorded in the storage 420 included in the execution environment 410.

ストレージ420は、少なくとも1つの記録媒体の記憶領域であり、少なくとも、複数のアプリケーションで共通であるクライアント用プログラム422を記憶している。また、ストレージ420の所定の領域(所定のフォルダ、所定のバケット、所定の階層下)には、当該実行環境(マルチテナント実行環境410)へアクセスするためのアクセス先情報421が記録されている。また、開発者のアカウント毎の記憶領域である開発者用領域を有している。例えば開発者Aのための領域である開発者A領域423、開発者Bのための領域である開発者B領域424、開発者Cのための領域である開発者C領域425が含まれる。各開発者用領域には、各開発者が開発して、開発環境300からデプロイされたアプリの定義情報を記憶している。例えば、既発者A領域423にはアプリ定義423aが記録されている。 Storage 420 is a storage area of at least one recording medium, and stores at least a client program 422 that is common to multiple applications. In addition, in a specified area (specified folder, specified bucket, specified level) of storage 420, access destination information 421 for accessing the execution environment (multi-tenant execution environment 410) is recorded. In addition, there is a developer area which is a storage area for each developer account. For example, it includes developer A area 423 which is an area for developer A, developer B area 424 which is an area for developer B, and developer C area 425 which is an area for developer C. In each developer area, definition information of an app developed by each developer and deployed from development environment 300 is stored. For example, app definition 423a is recorded in developer A area 423.

DBセット430は、実行環境410にデプロイされたアプリケーションが用いるデータベースに関する情報群である。DBセット430は、少なくとも1つの記録媒体の記憶領域に記憶される。DBセット430の詳細に関しては図23を用いて後述する。 The DB set 430 is a group of information about a database used by an application deployed in the execution environment 410. The DB set 430 is stored in the storage area of at least one recording medium. Details of the DB set 430 will be described later with reference to FIG. 23.

シングルテナント実行環境1(450)、2(460)、3(470)は、それぞれ1人の開発者(1つの開発者アカウント)に専用の実行環境であり、所有者である開発者によって開発環境300を用いて開発されたアプリケーションがデプロイされる。本実施形態では例として、シングルテナント実行環境1(450)の所有者は開発者A、シングルテナント実行環境2(460)の所有者も開発者A、シングルテナント実行環境3(470)の所有者は開発者B、としている。このように、1人の開発者が複数のシングルテナント実行環境を所有することもできる。シングルテナント実行環境1(450)、2(460)、3(470)はそれぞれ、ユーザー情報451、461、471、実行エンジン452、462、472、配信エンジン455、465、475、ストレージ456、466、476、DBセット457、467、477を含む。これらは、1人の開発者に専用であることを除いては、前述したマルチテナント実行環境410の、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433と同様の機能であるため、詳細な説明は省略する。シングルテナント実行環境は図示した3つだけでなく、更に数多く構築することが可能である。 Single tenant execution environments 1 (450), 2 (460), and 3 (470) are each execution environments dedicated to one developer (one developer account), and applications developed by the developer who is the owner using the development environment 300 are deployed. In this embodiment, as an example, the owner of single tenant execution environment 1 (450) is Developer A, the owner of single tenant execution environment 2 (460) is also Developer A, and the owner of single tenant execution environment 3 (470) is Developer B. In this way, one developer can own multiple single tenant execution environments. Single tenant execution environments 1 (450), 2 (460), and 3 (470) each include user information 451, 461, and 471, execution engines 452, 462, and 472, distribution engines 455, 465, and 475, storage 456, 466, and 476, and DB sets 457, 467, and 477. These have the same functions as the user information 411, execution engine 412, delivery engine 415, storage 420, and DB set 433 of the multi-tenant execution environment 410 described above, except that they are dedicated to one developer, so detailed explanations will be omitted. It is possible to build many more single-tenant execution environments than the three shown in the figure.

図1のシステムを用いて、例えば、運用者が、マルチテナント実行環境410を開発者に無償提供し、シングルテナント実行環境を有償提供するという運用とすることが考えられる。マルチテナント実行環境410も、各シングルテナント実行環境も、リソースとサービスの提供業者(クラウドサービス事業者)に対して本システムの運用者が維持費用を支払う必要がある。マルチテナント実行環境410の維持費用は、運用者が負担して複数の開発者に無償提供することにより、開発者が本システムの試用のために費用負担をする必要がないため、多くの開発者が利用しやすく、本システムの普及を促進することができる。運用者は、シングルテナント実行環境に対して開発者に課金することで費用回収する。 Using the system of FIG. 1, for example, an operator could provide the multi-tenant execution environment 410 to developers free of charge and the single-tenant execution environment for a fee. The operator of this system must pay maintenance costs to the resource and service provider (cloud service operator) for both the multi-tenant execution environment 410 and each single-tenant execution environment. By having the operator bear the maintenance costs of the multi-tenant execution environment 410 and provide it free of charge to multiple developers, developers do not need to bear the costs for trialing the system, making it easy for many developers to use and promoting the spread of the system. The operator recovers costs by charging developers for the single-tenant execution environments.

1つの実行環境で単位時間あたりに処理できる処理リクエストの数に上限があり、数多くのアプリケーションがマルチテナント実行環境に構築され、多くのアプリユーザーが同時にアクセスした場合、リクエストが処理しきれず、アプリケーションの動作が遅くなるなどの状況になる可能性がある。他にも、マルチテナント実行環境に多くの開発者が開発した多くのアプリケーションがデプロイされて実行されることに対して、いくらかの制限があり、その制限のためにアプリケーションが十分なパフォーマンスを発揮できない場合がある。開発者が、有償で専用のシングルテナント実行環境を所有することで、このようなマルチテナント実行環境の制限による問題は回避(あるいは低減)することができる。すなわち、アプリケーションをシングルテナント実行環境に構築することで、十分なパフォーマンスを発揮するアプリケーションを構築することができる。 There is an upper limit to the number of processing requests that can be processed per unit time in one execution environment, and if many applications are built in a multi-tenant execution environment and many app users access it simultaneously, it is possible that the requests cannot be processed and the applications may run slowly. In addition, there are some restrictions on the deployment and execution of many applications developed by many developers in a multi-tenant execution environment, and these restrictions may prevent the applications from performing adequately. If developers pay to own a dedicated single-tenant execution environment, they can avoid (or reduce) problems caused by the restrictions of such multi-tenant execution environments. In other words, by building applications in a single-tenant execution environment, applications that perform adequately can be built.

このようなマルチテナントシングル環境とシングルテナント実行環境の双方の特徴を踏まえ、開発者は、本システムを次のように活用できる。例えば、本システムを初めて使う場合にはマルチテナント実行環境410に本システムを用いて開発したアプリケーションを構築して試用を行った後に、本システムが開発者のソフトウェア開発に資すると判断したうえで、シングルテナント実行環境を有償で導入するといった使い方ができる。また、開発者が特定のアプリケーションXを開発する際に、一般ユーザーに公開する前に、人数の限られたテストユーザーに試用してもらうためのアプリケーションXのα版をマルチテナント実行環境410に構築する。そこでアプリケーションXのテスト行い、アプリケーションXの修正などを行い、更に開発を進める。そして、一般ユーザーへ公開しても問題ないレベルまで開発が完了した後に、アプリケーションXの本運用版をシングルテナント実行環境に構築して、一般ユーザーに公開する。このような使い方をすれば、開発者は、開発期間の開発費用を抑え、かつ、多数の一般ユーザーが利用しても問題の無いアプリケーションの運用を行うことができる。 Considering the characteristics of both the multi-tenant single environment and the single-tenant execution environment, developers can use this system as follows. For example, when using this system for the first time, developers can build an application developed using this system in the multi-tenant execution environment 410 and test it, and then, if they determine that this system is useful for the developer's software development, they can introduce the single-tenant execution environment for a fee. In addition, when a developer develops a specific application X, an alpha version of application X is built in the multi-tenant execution environment 410 for a limited number of test users to try out before releasing it to general users. There, application X is tested, and modifications are made to application X, and further development is carried out. Then, after the development is completed to a level where it can be released to general users without any problems, a production version of application X is built in the single-tenant execution environment and released to general users. By using it in this way, developers can reduce development costs during the development period and operate applications that can be used by a large number of general users without any problems.

図2に、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201として適用可能な装置(電子機器)の一例としての情報処理装置のハードウェアブロック図を示す。図2において、内部バス150に対してCPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ105、操作部106、記録媒体I/F107、外部I/F109、通信I/F110が接続されている。内部バス150に接続される各部は、内部バス150を介して互いにデータのやりとりを行うことができるようにされている。 Figure 2 shows a hardware block diagram of an information processing device as an example of a device (electronic device) applicable as developer terminal 100, application user terminal 200, and application user terminal 201. In Figure 2, CPU 101, memory 102, non-volatile memory 103, image processing unit 104, display 105, operation unit 106, recording medium I/F 107, external I/F 109, and communication I/F 110 are connected to internal bus 150. Each unit connected to internal bus 150 is capable of exchanging data with each other via internal bus 150.

メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU101は、例えば不揮発性メモリ103に格納されるプログラムに従い、メモリ102をワークメモリとして用いて、情報処理装置の各部を制御する。不揮発性メモリ103には、画像データや音声データ、その他のデータ、CPU101が動作するための各種プログラムなどが格納される。不揮発性メモリ103は例えばハードディスク(HD)やROMなどで構成される。 The memory 102 is, for example, a RAM (such as a volatile memory using semiconductor elements). The CPU 101 uses the memory 102 as a work memory to control each part of the information processing device according to a program stored in, for example, the non-volatile memory 103. The non-volatile memory 103 stores image data, audio data, other data, various programs for the operation of the CPU 101, and the like. The non-volatile memory 103 is, for example, a hard disk (HD) or a ROM.

画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては画像処理部104を用いずにCPU101がプログラムに従って画像処理を施すことも可能である。 Based on the control of the CPU 101, the image processing unit 104 performs various image processing on image data stored in the non-volatile memory 103 or the recording medium 108, video signals acquired via the external I/F 109, image data acquired via the communication I/F 110, captured images, etc. The image processing performed by the image processing unit 104 includes A/D conversion processing, D/A conversion processing, image data encoding processing, compression processing, decoding processing, enlargement/reduction processing (resizing), noise reduction processing, color conversion processing, etc. The image processing unit 104 may be configured with a circuit block dedicated to performing specific image processing. Also, depending on the type of image processing, it is possible for the CPU 101 to perform image processing according to a program without using the image processing unit 104.

ディスプレイ105は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU101は、プログラムに従い表示制御信号を生成し、ディスプレイ105に表示するための映像信号を生成してディスプレイ105に出力するように情報処理装置の各部を制御する。ディスプレイ105は出力された映像信号に基づいて映像を表示する。なお、情報処理装置自体が備える構成としてはディスプレイ105に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ105は外付けのモニタ(テレビなど)で構成してもよい。以下、開発者用端末100、アプリユーザー用端末200、アプリユーザー用端末201が実行する処理においての表示先は、特に断りが無い場合には、各動作主のディスプレイ105であるものとする。 Under the control of CPU 101, display 105 displays images and GUI screens constituting a GUI (Graphical User Interface). CPU 101 generates a display control signal according to a program, and controls each part of the information processing device to generate a video signal for display on display 105 and output it to display 105. Display 105 displays an image based on the output video signal. Note that the configuration of the information processing device itself is limited to an interface for outputting a video signal for display on display 105, and display 105 may be configured as an external monitor (such as a television). Hereinafter, unless otherwise specified, the display destination in the processes executed by developer terminal 100, application user terminal 200, and application user terminal 201 is assumed to be the display 105 of each operator.

操作部106は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザー操作を受け付けるための入力デバイスである。なお、タッチパネルは、ディスプレイ105に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。 The operation unit 106 is an input device for receiving user operations, including a character information input device such as a keyboard, a pointing device such as a mouse or a touch panel, a button, a dial, a joystick, a touch sensor, a touch pad, etc. The touch panel is an input device that is configured as a planar panel overlaid on the display 105 and outputs coordinate information according to the touched position.

記録媒体I/F107は、メモリーカードやCD、DVDといった記録媒体108が装着可能とされ、CPU101の制御に基づき、装着された記録媒体108からのデータの読み出しや、当該記録媒体108に対するデータの書き込みを行う。外部I/F109は、外部機器と有線ケーブルや無線によって接続し、映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F110は、外部機器やインターネット111などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。開発者用端末100は通信I/F110を用いて、インターネット111上にある開発環境300と通信可能(情報の送受信可能)である。アプリユーザー用端末200、201は通信I/F110を用いて、インターネット111上にある実行環境400と通信可能(情報の送受信可能)である。 The recording medium I/F 107 allows a recording medium 108 such as a memory card, CD, or DVD to be attached, and reads data from the attached recording medium 108 and writes data to the recording medium 108 based on the control of the CPU 101. The external I/F 109 is an interface that connects to an external device via a wired cable or wirelessly, and inputs and outputs video signals and audio signals. The communication I/F 110 is an interface that communicates with an external device, the Internet 111, etc., and transmits and receives various data such as files and commands. The developer terminal 100 can communicate with the development environment 300 on the Internet 111 (can transmit and receive information) using the communication I/F 110. The application user terminals 200 and 201 can communicate with the execution environment 400 on the Internet 111 (can transmit and receive information) using the communication I/F 110.

<ログイン処理>
図3(a)、(b)に、ログイン処理のフローチャートを示す。この処理は、開発者用端末100から開発環境300にログインしてUIエディタを表示するまでの処理である。開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスする指示があると、図3(a)の処理を開始する。図3(a)の処理は、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行することにより実現する。以降、単に開発者用端末100が実行する処理として記載したものは、開発者用端末100のCPU101が、インターネットブラウザソフトを実行するための不揮発性メモリ103に記録されたプログラムと、開発環境300から受信したクライアント用プログラム322とを、メモリ102に展開して実行する処理であるものとする。
<Login process>
3A and 3B show flow charts of the login process. This process is a process from logging in to the development environment 300 from the developer terminal 100 to displaying a UI editor. When the developer terminal 100 starts the Internet browser software and receives an instruction to access the development system (application development platform) of this embodiment by specifying the URL, the process of FIG. 3A is started. The process of FIG. 3A is realized by the CPU 101 of the developer terminal 100 expanding a program recorded in the non-volatile memory 103 for executing the Internet browser software and a client program 322 received from the development environment 300 in the memory 102 and executing them. Hereinafter, what is simply described as a process executed by the developer terminal 100 is assumed to be a process in which the CPU 101 of the developer terminal 100 expands a program recorded in the non-volatile memory 103 for executing the Internet browser software and a client program 322 received from the development environment 300 in the memory 102 and executes them.

開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスすると、開発環境300の配信エンジン305がアクセスを検知し、アクセス元の開発者用端末100にクライアント用プログラム322を送信する。 When an internet browser software is launched on the developer terminal 100 and the URL of the development system (application development platform) of this embodiment is specified and accessed, the distribution engine 305 of the development environment 300 detects the access and transmits the client program 322 to the developer terminal 100 that is the source of the access.

S301では、開発者用端末100は、開発環境300から送信されたクライアント用プログラム322を受信したか否かを判定する。受信していなければS301で受信を待ち、受信したらS302に進む。 In S301, the developer terminal 100 determines whether or not it has received the client program 322 sent from the development environment 300. If it has not been received, it waits for reception in S301, and if it has been received, it proceeds to S302.

S302では、開発者用端末100は、開発環境300から受信したクライアント用プログラム322をメモリ102に記録する。 In S302, the developer terminal 100 records the client program 322 received from the development environment 300 in memory 102.

S303では、開発者用端末100は、クライアント用プログラム322に従い、ログイン画面をディスプレイ105に表示する。ログイン画面には、本実施形態の開発システムへのログイン画面である旨と、開発者IDとパスワードの入力欄、新規登録ボタン(アイコン)、ログインボタン(アイコン)が表示される。 In S303, the developer terminal 100 displays a login screen on the display 105 in accordance with the client program 322. The login screen displays a message indicating that this is a login screen for the development system of this embodiment, as well as fields for inputting a developer ID and password, a new registration button (icon), and a login button (icon).

S304では、開発者用端末100は、ログイン画面の開発者IDとパスワードの入力欄への入力操作を受け付ける。ユーザーの入力操作は操作部106を用いて行われる。開発者IDは開発者ユーザーを識別(特定)するためのユーザー識別情報である。本実施形態では開発者ID(ユーザーネーム)は、メールアドレスであるものとする。また、暗証情報として用いるパスワードは任意の文字列であるものとするが、生体認証情報(指紋認証は顔認証に用いる情報)や、パターン認証の情報(画面に入力された軌跡パターンの情報)など、他の暗証情報としてもよい。 In S304, the developer terminal 100 accepts input operations into the input fields of the login screen for the developer ID and password. The user's input operations are performed using the operation unit 106. The developer ID is user identification information for identifying (specifying) the developer user. In this embodiment, the developer ID (user name) is an email address. In addition, the password used as the secret information is an arbitrary character string, but it may be other secret information such as biometric authentication information (fingerprint authentication is information used for face authentication) or pattern authentication information (information of a trajectory pattern entered on the screen).

S305では、開発者用端末100は、ログイン画面の新規登録ボタンを指示する操作(例えばクリック)されたか否かを判定する。なお、以下、表示アイテム(ボタン、アイコンなどの表示物、表示項目)に対して、操作部106に含まれるマウスでクリックする、タッチパネルへタッチする、といった方法で指示する操作を、単に「押下」と記載する。新規登録ボタンが押下された場合にはS306に進み、そうでない場合にはS307に進む。 In S305, the developer terminal 100 determines whether an operation has been performed (e.g., a click) to instruct the New Registration button on the login screen. Note that hereinafter, an operation to instruct a display item (a display object such as a button or icon, or a display item) by clicking with the mouse included in the operation unit 106 or touching the touch panel will be referred to simply as "pressing". If the New Registration button has been pressed, proceed to S306; if not, proceed to S307.

S306では、開発者用端末100は、開発者アカウント登録処理を行う。開発者アカウント登録処理の詳細は図22(a)を用いて後述する。 In S306, the developer terminal 100 performs a developer account registration process. Details of the developer account registration process will be described later with reference to FIG. 22(a).

S307では、開発者用端末100は、ログイン画面のログインボタンが押下されたか否かを判定する。ログインボタンが押下された場合にはS308に進み、そうでない場合にはS304に戻る。 In S307, the developer terminal 100 determines whether the login button on the login screen has been pressed. If the login button has been pressed, the process proceeds to S308; if not, the process returns to S304.

S308では、開発者用端末100は、ログイン情報として、ログイン画面の開発者IDとパスワードの入力欄へ入力された情報(入力された開発者IDとパスワード)を開発環境300に送信する。送信後、開発環境300において認証処理が行われるため、その結果を待つ。 In S308, the developer terminal 100 transmits the information entered in the developer ID and password input fields on the login screen (the entered developer ID and password) as login information to the development environment 300. After transmission, an authentication process is performed in the development environment 300, and the result is awaited.

S309では、開発者用端末100は、開発環境300からログインエラーの旨の情報を受信したか否かを判定する。ログインエラーの旨の情報を受信した場合はS304に戻って再度ログイン情報の入力を受け付け、そうでない場合にはS310へ進む。 In S309, the developer terminal 100 determines whether or not it has received information about a login error from the development environment 300. If it has received information about a login error, it returns to S304 and accepts the input of login information again, otherwise it proceeds to S310.

S310では、開発者用端末100は、開発環境300から実行環境リストを受信したか否かを判定する。開発環境300はログイン認証が成功すれば実行環境リストを開発者用端末100に送信するため、実行環境リストを受信したということは、ログイン認証に成功した(ログインできた)ということである。実行環境リストを受信した場合にはS311に進み、そうでない場合にはS309に戻る。 In S310, the developer terminal 100 determines whether or not it has received an execution environment list from the development environment 300. If the login authentication is successful, the development environment 300 sends the execution environment list to the developer terminal 100, so receiving the execution environment list means that the login authentication was successful (login was successful). If the execution environment list has been received, proceed to S311; if not, return to S309.

S311では、開発者用端末100は、ログイン後のアプリの開発画面として、S310で受信した実行環境リストをメモリ102に記録するとともに、受信した実行環境リストに基づいて実行環境の選択肢をディスプレイ105に表示する。実行環境リストはログインした開発者がアクセス可能な実行環境を示している。なお、S311以降に開発者用端末100で表示される画面であって、構築後のアプリの画面とは異なる画面を総称して開発画面と称するものとする。 In S311, the developer terminal 100 records the execution environment list received in S310 in memory 102 as the development screen for the app after login, and displays execution environment options based on the received execution environment list on the display 105. The execution environment list indicates the execution environments that the logged-in developer can access. Note that screens displayed on the developer terminal 100 after S311 that are different from the screen of the constructed app are collectively referred to as development screens.

図5(a)に、S311での実行環境の選択肢の表示例を示す。図5(a)の表示例では、ログインした開発者がアクセス可能な実行環境として、マルチテナント実行環境410に対応する選択肢551と、シングルテナント実行環境に対応する選択肢552の2つの選択肢が表示されている。開発者ユ―ザーはこれらの選択肢のいずれかを押下することにより選択して、SAVEボタン553を押下することで選択を確定することができる。ここで選択されるのは、今回のログインにおいてこの後の作業で更新したアプリケーションをデプロイする先である。この時点で実行環境にアクセスするわけではない。また、ここで選択した実行環境は後述する操作によって変更可能である。 Figure 5 (a) shows an example of the display of execution environment options in S311. In the display example of Figure 5 (a), two options are displayed as execution environments that the logged-in developer can access: option 551 corresponding to the multi-tenant execution environment 410, and option 552 corresponding to the single-tenant execution environment. The developer user can select one of these options by pressing it, and confirm the selection by pressing the SAVE button 553. What is selected here is the destination to which the application updated in the subsequent work during this login will be deployed. The execution environment is not accessed at this point. Furthermore, the execution environment selected here can be changed by the operation described below.

S312では、開発者用端末100は、実行環境の選択が行われたか否かを判定する。実行環境の選択肢のいずれかが押下され、SAVEボタン553が押下された場合にはS313に進み、そうでない場合にはS312で実行環境の選択を待つ。 In S312, the developer terminal 100 determines whether an execution environment has been selected. If one of the execution environment options has been pressed and the SAVE button 553 has been pressed, the process proceeds to S313; otherwise, the process waits for the selection of an execution environment in S312.

S313では、開発者用端末100は、S312で選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中実行環境(選択環境)を特定する情報を受信したことに応じて、アプリ情報として、ログイン開発者が所有する全てのアプリケーション(過去に生成され、ストレージ320に記録されているアプリケーション)を特定する情報(アプリIDやアプリ名など)を送信する。 In S313, the developer terminal 100 records information (such as an execution environment ID) that identifies the execution environment selected in S312 in memory 102 as the "selected execution environment" and transmits it to the development environment 300. In response to receiving the information that identifies the selected execution environment (selected environment), the development environment 300 transmits, as app information, information (such as app IDs and app names) that identifies all applications owned by the logged-in developer (applications that have been generated in the past and recorded in storage 320).

S314では、開発者用端末100は、開発環境300からアプリ情報を受信したか否かを判定する。アプリ情報を受信した場合にはS315に進み、そうでない場合にはS314でアプリ情報の受信を待つ。 In S314, the developer terminal 100 determines whether or not app information has been received from the development environment 300. If app information has been received, the process proceeds to S315; if not, the process waits for reception of app information in S314.

S315では、開発者用端末100は、受信したアプリ情報をメモリ102に記録するとともに、アプリ情報に基づき、ログインユーザーが所有する(開発中の)アプリケーションの一覧(アプリ一覧)をディスプレイ105に表示する。 In S315, the developer terminal 100 records the received app information in memory 102 and displays a list of applications (app list) owned (under development) by the logged-in user on the display 105 based on the app information.

S316では、開発者用端末100は、アプリ一覧に表示されたアプリケーションの一覧のうち、いずれかのアプリケーションが選択されたか否かを判定する。いずれかのアプリが選択された場合にはS317に進み、そうでない場合はS320に進む。 In S316, the developer terminal 100 determines whether any application has been selected from the list of applications displayed in the app list. If any application has been selected, the process proceeds to S317; if not, the process proceeds to S320.

S317では、開発者用端末100は、アプリ一覧から選択されたアプリケーションを「選択中アプリ」として、選択中アプリを特定する情報(アプリIDやアプリ名など)をメモリ102に記録するとともに、開発環境300に送信する。開発環境300では、選択中アプリを特定する情報を受信すると、ストレージ320のうち、ログインしている開発者の領域から選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。 In S317, the developer terminal 100 records the application selected from the list of apps as the "selected app" in memory 102, along with information identifying the selected app (such as the app ID and app name), and transmits it to the development environment 300. When the development environment 300 receives the information identifying the selected app, it retrieves definition information (app definition) for the selected app from the area of storage 320 that is associated with the logged-in developer, and transmits it to the developer terminal 100.

S318では、開発者用端末100は、開発環境300から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。選択中アプリの定義情報を受信した場合には、受信した選択中アプリの定義情報をメモリ102に記録してS319に進み、そうでない場合にはS318で定義情報の受信を待つ。本実施形態では、この定義情報は、Json形式でアプリケーションに関する各種定義が記述されたJsonファイルであるものとする。以降、選択中アプリに関してディスプレイ105に表示を行う場合には、メモリ102に記録した定義情報に基づいて表示を行う。後述するUIエディタ処理などで選択中アプリについて更新する操作(例えば、UI部品の配置を変更するなど)が行われると、このメモリ102の定義情報を更新後の内容を定義するように更新する。そして保存の指示があった場合に、メモリ102に記録された最新の定義情報を開発環境300に送信し、ストレージ320のうちログイン開発者の領域に保存させる。このようにすることで、開発環境300との通信頻度の増大を抑え、通信のためにレスポンスが低下することを抑止して快適な更新作業を行うことができる。 In S318, the developer terminal 100 determines whether or not it has received definition information (UI definition information) of the selected application from the development environment 300. If it has received definition information of the selected application, it records the received definition information of the selected application in memory 102 and proceeds to S319, otherwise, it waits for the reception of definition information in S318. In this embodiment, this definition information is a Json file in which various definitions related to the application are described in Json format. Thereafter, when the selected application is displayed on the display 105, it is displayed based on the definition information recorded in memory 102. When an operation for updating the selected application (for example, changing the arrangement of UI parts) is performed in a UI editor process described later, the definition information in memory 102 is updated to define the updated content. Then, when a save instruction is given, the latest definition information recorded in memory 102 is sent to the development environment 300 and saved in the login developer's area of the storage 320. In this way, an increase in the frequency of communication with the development environment 300 is suppressed, and a decrease in response due to communication is suppressed, making it possible to perform a comfortable update operation.

S319では、開発者用端末100は、ディスプレイ105にUIエディタ画面を表示するとともに、受信した定義情報に基づく表示を行う。例えば、選択中アプリがデスクトップ用であるか用であるかに応じた形状(すなわち、アプリを利用するデバイスの種別に応じた形状)のキャンバス(UI画面の編集領域)を表示する。テスクトップ用であれば16:9の矩形のキャンバスとし、モバイル用であればスマートフォンを模した縦長のアスペクト比のキャンバスとする。サブメニュー領域(後述)には選択中アプリが有する(選択中アプリに属する)UI画面の一覧を表示する(この処理は厳密には後述する図4のS401で行われる)。また、キャンバスには、デフォルトで選択されるUI画面(イニシャルUIや最後に保存した際に編集していたUI画面)に配置されるコンポーネント(UI画面に配置されるUI部品)を表示する。なお、編集対象のUI画面をデフォルトで選択することをせず、この時点ではキャンバスには何も表示しないようにしても良い。S319の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S319, the developer terminal 100 displays a UI editor screen on the display 105 and displays based on the received definition information. For example, a canvas (editing area of the UI screen) with a shape according to whether the selected application is for desktop or mobile (i.e., a shape according to the type of device using the application) is displayed. If it is for desktop, a rectangular canvas with a ratio of 16:9 is used, and if it is for mobile, a canvas with a vertical aspect ratio imitating a smartphone is used. In the submenu area (described later), a list of UI screens that the selected application has (belongs to the selected application) is displayed (this process is strictly performed in S401 in FIG. 4 described later). In addition, the canvas displays components (UI parts to be placed on the UI screen) that are placed on the UI screen selected by default (initial UI or the UI screen that was edited when last saved). Note that the UI screen to be edited may not be selected by default, and nothing may be displayed on the canvas at this point. The login process is terminated in the process of S319, and the process proceeds to S401 in FIG. 4.

一方、S320では、開発者用端末100は、アプリ一覧を表示した画面に表示された、アプリケーションを新規に作成するためのアイコン(+マーク、不図示)が押下され、新規アプリケーションの作成が指示されたか否かを判定する。新規アプリケーションの作成が指示されたと判定した場合にはS321に進み、そうでない場合にはS316に戻る。 On the other hand, in S320, the developer terminal 100 determines whether an icon (a + mark, not shown) for creating a new application displayed on the screen displaying the list of apps has been pressed, instructing the creation of a new application. If it determines that a command has been issued to create a new application, the process proceeds to S321, and if not, the process returns to S316.

S321では、開発者用端末100は、新規作成するアプリケーションを、デスクトップ用(PC用)とするかモバイル用とするかの選択画面を表示し、いずれかを選択する操作を受け付ける。デスクトップ用アプリケーションとは、デスクトップPC、ノートPCなどのアプリユーザー用端末200からアクセスされ、操作されることを想定したアプリケーションである。モバイル用アプリケーションとは、スマートフォンなどのアプリユーザー用端末201からアクセスされ、操作されることを想定したアプリケーションである。 In S321, the developer terminal 100 displays a selection screen for whether the newly created application is for desktop (PC) or mobile use, and accepts an operation to select one of them. A desktop application is an application that is intended to be accessed and operated from an app user terminal 200 such as a desktop PC or notebook PC. A mobile application is an application that is intended to be accessed and operated from an app user terminal 201 such as a smartphone.

S322では、開発者用端末100は、新規作成するアプリケーションに関する基本となるアプリ情報(少なくともアプリ名、アプリID)の入力を受け付けるための画面を表示し、アプリ情報を設定する入力操作を受け付ける。アプリ情報の入力を受け付けると、S321で受け付けたデスクトップ用(PC用)かモバイル用かの情報と、S322で入力を受け付けたアプリ情報を開発環境300に送信する。こうして、新規作成されたアプリケーションの定義情報として、開発環境300のストレージ320に、新規のアプリケーションの定義情報が作成され、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録される。過去に作成済みのアプリケーションの定義情報にも、このようにして、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが記録されている。 In S322, the developer terminal 100 displays a screen for accepting input of basic app information (at least the app name and app ID) for the newly created application, and accepts input operations to set the app information. When the input of the app information is accepted, the information on whether the application is for desktop (PC) or mobile, accepted in S321, and the app information accepted in S322 are sent to the development environment 300. In this way, definition information for the new application is created in the storage 320 of the development environment 300 as definition information for the newly created application, and the information on whether the application is for desktop (PC) or mobile, the app name, and the app ID are recorded. In this way, the information on whether the application is for desktop (PC) or mobile, the app name, and the app ID are also recorded in the definition information of applications that have already been created in the past.

S323では、開発者用端末100は、新規作成されたアプリケーションの編集画面としてUIエディタ画面を表示する。この場合、キャンバスはS321で選択されたデスクトップ用であるかモバイル用であるかに応じた形状で表示される。また、キャンバスはコンポーネントが1つも配置されていない空白情報で表示される。S323の処理でログイン処理を終了し、続いて、図4のS401へ進む。 In S323, the developer terminal 100 displays a UI editor screen as an editing screen for the newly created application. In this case, the canvas is displayed in a shape according to whether it is for desktop or mobile use, selected in S321. The canvas is also displayed as blank information with no components placed on it. The login process ends in the process of S323, and the process proceeds to S401 in FIG. 4.

図3(b)に、図3(a)の開発者用端末100側でのログイン処理と協働する開発環境300側のログイン処理を示す。図3(b)の処理は、開発環境300のプロセッサ303が、メモリ304に記録されたプログラムを、プロセッサ303が開発環境300のうちワークメモリとなる領域に展開して実行することにより実現する。以降、単に開発環境300が実行する処理として記載したものは、開発環境300の実行エンジン302が、より詳しくはプロセッサ303が実行する処理であるものとする。 Figure 3(b) shows the login process on the development environment 300 side, which cooperates with the login process on the developer terminal 100 side in Figure 3(a). The process in Figure 3(b) is realized by the processor 303 of the development environment 300 expanding and executing a program recorded in memory 304 into an area of the development environment 300 that serves as a work memory. Hereinafter, what is simply described as a process executed by the development environment 300 is assumed to be a process executed by the execution engine 302 of the development environment 300, or more specifically, by the processor 303.

S331では、開発環境300は、S308で開発者用端末100から送信されたログイン情報を受信したか否かを判定する。ログイン情報を受信した場合にはS332に進み、そうでない場合にはログイン情報の受信を待つ。 In S331, the development environment 300 determines whether or not the login information sent from the developer terminal 100 in S308 has been received. If the login information has been received, the process proceeds to S332; if not, the process waits for the login information to be received.

S332では、開発環境300は、受信したログイン情報と、開発者情報301を比較し、ログイン認証(ユーザー認証)を行う。より具体的には、受信したログイン情報に含まれる開発者IDとパスワードの組と一致する情報が、開発者情報301(ユーザー情報)に含まれているかを判定する。含まれていれば認証は成功する。 In S332, the development environment 300 compares the received login information with the developer information 301 and performs login authentication (user authentication). More specifically, it determines whether the developer information 301 (user information) contains information that matches the developer ID and password pair contained in the received login information. If so, authentication is successful.

S333では、開発環境300は、S332の認証処理の結果、ログインOKである(認証に成功した、認証された、認証OKである)か否かを判定する。ログインOKである場合にはS335に進み、ログインOKでない場合にはS334に進み、ログインエラーである旨の情報を開発者用端末100に送信する。 In S333, the development environment 300 determines whether the result of the authentication process in S332 is that login is OK (authentication was successful, was authenticated, authentication is OK). If login is OK, the process proceeds to S335, and if login is not OK, the process proceeds to S334 and sends information to the developer terminal 100 indicating that there is a login error.

S335では、開発環境300は、開発者情報301に含まれる、ログインOKとなった開発者(ログイン開発者)の実行環境リストを開発者用端末100に送信する。開発者情報301には、図14(a)に示す通り、各開発者について、メールアドレス(ユーザーネーム、開発者ID)とパスワードに加えて、アクセス可能な実行環境IDが記録されている。各実行環境IDはクラウドサービス(Webサービス)におけるアカウントIDであり、本実施形態では12桁のIDであるものとする。複数の実行環境にアクセス可能な開発者の場合は、12桁の実行環境IDがカンマで区切られて記録されている。S335では、ログイン開発者についての、このアクセス可能な実行環境ID(カンマで区切られた1つ以上の実行環境ID)を開発者用端末100に送信する。すなわち、S335において、開発者情報301を参照することにより、ログイン開発者がアクセス可能な実行環境が特定される。このように、各開発者のアクセス可能な実行環境(各開発者が利用可能な実行環境)は、開発環境300に記録された開発者情報301に記録されている。そして、このログイン可能な実行環境は、ログインOKとなった開発者でなければ取得できない。また、ログインOKとなった開発者自身のアクセス可能実行環境しか取得できない。このようにすることで、開発者が、自身のアクセス可能な実行環境へアクセスするための情報を、開発環境300にログインするための情報と別途に管理する必要がない。また、他のユーザーが不正に実行環境へアクセスすることも抑止できる。 In S335, the development environment 300 transmits to the developer terminal 100 a list of execution environments of the developer (login developer) whose login has been approved, which is included in the developer information 301. In addition to the email address (username, developer ID) and password, the developer information 301 records the accessible execution environment ID for each developer, as shown in FIG. 14(a). Each execution environment ID is an account ID in a cloud service (Web service), and is a 12-digit ID in this embodiment. In the case of a developer who can access multiple execution environments, the 12-digit execution environment ID is recorded separated by a comma. In S335, the accessible execution environment ID (one or more execution environment IDs separated by a comma) for the login developer is transmitted to the developer terminal 100. That is, in S335, the execution environment that the login developer can access is specified by referring to the developer information 301. In this way, the accessible execution environment of each developer (the execution environment that each developer can use) is recorded in the developer information 301 recorded in the development environment 300. This execution environment that can be logged in can only be obtained by the developer who has been granted permission to log in. Furthermore, only the execution environment that can be accessed by the developer who has been granted permission to log in can be obtained. In this way, the developer does not need to manage information for accessing the execution environment that can be accessed by the developer separately from information for logging in to the development environment 300. It is also possible to prevent other users from illegally accessing the execution environment.

S336では、開発環境300は、S313で開発者用端末100から送信された選択中実行環境を特定する情報(環境特定情報)を受信したか否かを判定する。選択中実行環境を特定する情報を受信した場合にはS337に進み、そうでない場合には選択中実行環境を特定する情報の受信を待つ。 In S336, the development environment 300 determines whether or not it has received information (environment identification information) that identifies the selected execution environment transmitted from the developer terminal 100 in S313. If it has received information that identifies the selected execution environment, it proceeds to S337; if not, it waits for reception of information that identifies the selected execution environment.

S337では、開発環境300は、S336で受信した選択中実行環境を特定する情報に基づいて、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S337, the development environment 300 records the selected execution environment in a settings management file stored in the logged-in developer area of storage 320 based on the information identifying the selected execution environment received in S336.

S338では、開発環境300は、ストレージ320のうち、ログイン開発者の領域から、ログイン開発者が所有する(ログイン開発者が作成した)全てのアプリケーションを示すアプリ情報を取得し、開発者用端末100に送信する。ここで送信するアプリ情報は、アプリの定義情報のうち、S315で前述したアプリ一覧を表示するために必要な情報までであり、各アプリに関する詳細な定義情報(コンポーネントの配置や後述するアクションを示す情報など)は含まれない。 In S338, the development environment 300 retrieves app information indicating all applications owned by the logged-in developer (created by the logged-in developer) from the logged-in developer's area in storage 320, and transmits this information to the developer terminal 100. The app information transmitted here is only the app definition information necessary to display the app list mentioned above in S315, and does not include detailed definition information about each app (such as component placement and information indicating actions, which will be described later).

S339では、開発環境300は、S322で開発者用端末100から送信された新規アプリに関する情報(デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDを含む情報)を受信したか否かを判定する。新規アプリに関する情報を受信した場合にはS340に進み、そうでない場合にはS341へ進む。 In S339, the development environment 300 determines whether information about the new app (information including whether it is for desktop (PC) or mobile use, the app name, and the app ID) that was sent from the developer terminal 100 in S322 has been received. If information about the new app has been received, the process proceeds to S340; if not, the process proceeds to S341.

S340では、開発環境300は、ストレージ320のうち、ログイン開発者の領域に、S339で受信した新規アプリに関する情報に基づき、新規のアプリケーションの定義情報を作成して記録する。ここで記録される定義情報には、デスクトップ用(PC用)かモバイル用かの情報と、アプリ名、アプリIDが含まれる。なお、開発環境300では、マルチテナント実行環境410において他のユーザーのアプリと区別するために、アプリIDとして、S322で開発者から入力されたIDの直前に、アプリを所有する開発者の開発者IDに一意に対応する開発者コード8桁を付して記録する。そして、ログイン処理を終了する。以降、内部処理を行う場合とアクションボードにプログラミング言語で表示する場合にはアプリIDを用いる場合にはログイン開発者の開発者コードを付したIDで処理を行う。また、UIエディタなどにアプリIDとして表示をする際には開発者コードを除く、S322で開発者から入力されたID部分だけを表示する。 In S340, the development environment 300 creates and records definition information for a new application in the login developer's area of the storage 320 based on the information on the new application received in S339. The definition information recorded here includes information on whether the application is for desktop (PC) or mobile use, the application name, and the application ID. In the development environment 300, in order to distinguish the application from applications of other users in the multi-tenant execution environment 410, an eight-digit developer code that uniquely corresponds to the developer ID of the developer who owns the application is added immediately before the ID input by the developer in S322 as the application ID and recorded. Then, the login process ends. Thereafter, when performing internal processing or when displaying in a programming language on the action board, if an application ID is used, the process is performed with the ID to which the developer code of the login developer is added. In addition, when displaying as an application ID in a UI editor, etc., only the ID part input by the developer in S322 is displayed, excluding the developer code.

S341では、開発環境300は、S317で開発者用端末100から送信された選択中アプリを特定する情報を受信したか否かを判定する。選択中アプリを特定する情報を受信した場合にはS342に進み、そうでない場合はS339に戻る。 In S341, the development environment 300 determines whether or not information identifying the selected app transmitted from the developer terminal 100 in S317 has been received. If information identifying the selected app has been received, the process proceeds to S342; otherwise, the process returns to S339.

S342では、開発環境300は、S341で受信した選択中アプリを特定する情報に基づき、ストレージ320のうち、ログイン開発者の領域から、選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。ここで送信する定義情報は、選択中アプリに関する詳細な定義情報(コンポーネントの配置や後述するアクションを示す情報など)を含む。そして、ログイン処理を終了する。 In S342, the development environment 300 retrieves definition information (app definition) of the selected app from the logged-in developer's area of the storage 320 based on the information identifying the selected app received in S341, and transmits the information to the developer terminal 100. The definition information transmitted here includes detailed definition information about the selected app (such as component placement and information indicating actions, which will be described later). Then, the login process ends.

<UIエディタ処理>
図4、図5(b)を用いて、UIエディタ処理について説明する。UIエディタ処理は、UIエディタ画面(アプリケーション開発画面)に対する開発者(ユーザー)からの操作に応じて、構築するアプリケーションの各種定義(UI部品の定義、アクション定義)を行う処理である。
<UI Editor Processing>
The UI editor process is described below with reference to Fig. 4 and Fig. 5B. The UI editor process is a process for performing various definitions (UI part definitions, action definitions) of an application to be constructed in response to operations by a developer (user) on a UI editor screen (application development screen).

図5(b)に、ディスプレイ105におけるUIエディタ処理で表示されるレイアウト編集画面の表示例を示す。図5(b)の画面には、ヘッダーメニュー領域500、メインメニュー領域510、サブメニュー領域520、キャンバス530(UI画面の編集受付領域)が含まれる。 Figure 5(b) shows an example of a layout editing screen displayed by the UI editor process on the display 105. The screen in Figure 5(b) includes a header menu area 500, a main menu area 510, a sub-menu area 520, and a canvas 530 (an editing reception area of the UI screen).

ヘッダーメニュー領域500には、選択中実行環境ボックス501、選択中アプリボックス502、選択中UI画面ボックス503、保存ボタン504、プレビューボタン505、デプロイボタン506が表示される。 The header menu area 500 displays a selected execution environment box 501, a selected app box 502, a selected UI screen box 503, a save button 504, a preview button 505, and a deploy button 506.

選択中実行環境ボックス501には、選択中実行環境を表す情報として、選択中実行環境IDが表示される。選択中実行環境ボックス501の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS310で取得したログイン開発者がアクセス可能な実行環境の一覧が表示され、一覧から任意の実行環境を選択することで、選択中実行環境を変更することが可能である。選択中実行環境が変更されても、選択中アプリは変更されず、メインメニュー領域510、サブメニュー領域520、キャンバス530に表示される内容は変更されない。このように、同じアプリケーションに関してデプロイする先である選択中実行環境を変更することで、同じアプリケーションを任意の複数の実行環境にデプロイすることが可能である。 The selected execution environment box 501 displays the selected execution environment ID as information representing the selected execution environment. By pressing the arrow icon on the right end of the selected execution environment box 501, a list of execution environments accessible to the logged-in developer obtained in S310 is displayed as a pull-down menu, and the selected execution environment can be changed by selecting any execution environment from the list. Even if the selected execution environment is changed, the selected app does not change, and the contents displayed in the main menu area 510, submenu area 520, and canvas 530 do not change. In this way, by changing the selected execution environment to which the same application is to be deployed, it is possible to deploy the same application to any number of execution environments.

選択中アプリボックス502には、選択中アプリを表す情報として、選択中アプリのアプリ名が表示される。選択中アプリボックス502の右端にある矢印アイコンを押下することで、プルダウンメニューとしてS314で取得したログイン開発者の所有するアプリ一覧が表示され、一覧から任意のアプリを選択することで、選択中アプリを変更することが可能である。選択中アプリが変更されると、サブメニュー領域520、キャンバス530に表示すべき内容が変わる。 The selected app box 502 displays the app name of the selected app as information representing the selected app. By pressing the arrow icon on the right end of the selected app box 502, a list of apps owned by the logged-in developer obtained in S314 is displayed as a pull-down menu, and the selected app can be changed by selecting any app from the list. When the selected app is changed, the content to be displayed in the submenu area 520 and the canvas 530 changes.

選択中UI画面ボックス503には、キャンバス530で編集中のUI画面を表す情報として、編集中のUI画面名が表示される。選択中UI画面ボックス504にある矢印アイコンを押下することで、プルダウンメニューとして、S318で取得した選択中アプリの定義情報に基づき、選択中アプリに属するUI画面の一覧が表示され、一覧から任意のUI画面を選択することで、キャンバス530に表示する編集対象のUI画面を変更することが可能である。 The selected UI screen box 503 displays the name of the UI screen being edited as information representing the UI screen being edited in the canvas 530. By pressing the arrow icon in the selected UI screen box 504, a list of UI screens belonging to the selected app based on the definition information of the selected app acquired in S318 is displayed as a pull-down menu, and it is possible to change the UI screen to be edited and displayed on the canvas 530 by selecting any UI screen from the list.

メインメニュー領域510には、メインメニューのメニュー項目としての選択肢アイコンとして、アプリ一覧ボタン511、UI画面ボタン512、ワークフローボタン513、設定ボタン514、環境一覧ボタン515、データベースボタン516、ファイルマネージャーボタン517、ユーザー管理ボタン518、スナップショットボタン519が表示される。これらの選択肢の押下に応じた処理については図12の画面切替処理で後述する。 In the main menu area 510, an app list button 511, a UI screen button 512, a workflow button 513, a settings button 514, an environment list button 515, a database button 516, a file manager button 517, a user management button 518, and a snapshot button 519 are displayed as option icons for the menu items of the main menu. The processing in response to pressing these options will be described later in the screen switching processing of FIG. 12.

サブメニュー領域520には、メインメニューで選択された項目に応じたサブメニューが表示される。図5(b)の例では、UI画面ボタン512の下位階層メニューとしてUIコンポーネント一覧(UI部品一覧)が表示されている例である。 The submenu area 520 displays a submenu corresponding to the item selected in the main menu. In the example of FIG. 5(b), a UI component list (UI part list) is displayed as a lower-level menu of the UI screen button 512.

キャンバス530は、選択中アプリの選択中のUI画面(選択中UI画面ボックス503に表示されているUI画面名のUI画面)のレイアウト編集領域である。図5(b)のキャンバス530は、デスクトップ用アプリケーションのキャンバスの表示例であり、デスクトップ用の形状で表示されている。ユーザーは、サブメニュー領域520に表示されたUI部品一覧の中から任意のUI部品(UIコンポーネント)を選び、キャンバス領域530にドラッグアンドドロップで配置することができる。キャンバス領域530に配置されたUI部品を選択してサイズや位置の調整ができる。また、キャンバス領域530に配置されたUI部品を選択して右クリックして表示される右クリックメニュー(コンテキストメニュー)に含まれるプロパティを選択することで、配色などのより詳細な設定を行える。さらに、同じくコンテキストメニューに含まれるアクションを選択することで、アクションボードが表示され、そのUI部品が操作された場合に実行すべきアクションを設定することができる。キャンバス530の空白領域にカーソルがある状態で右クリックを行うことで、キャンバスのコンテキストメニューを表示させることができ、そこに含まれるアクションを選択することにより、構築されたアプリケーションにおいてそのキャンバスのUI画面がロードされた場合に実行(そのUI画面を表示する際に実行)すべきアクションを設定することができる。 The canvas 530 is a layout editing area for the selected UI screen of the selected application (the UI screen of the UI screen name displayed in the selected UI screen box 503). The canvas 530 in FIG. 5B is an example of a canvas display for a desktop application, and is displayed in a desktop shape. The user can select any UI part (UI component) from the UI parts list displayed in the submenu area 520 and place it in the canvas area 530 by dragging and dropping it. The size and position of the UI part placed in the canvas area 530 can be adjusted by selecting it. In addition, by selecting a UI part placed in the canvas area 530 and right-clicking it to display a right-click menu (context menu), more detailed settings such as color scheme can be made. Furthermore, by selecting an action also included in the context menu, an action board is displayed, and an action to be executed when the UI part is operated can be set. By right-clicking with the cursor in a blank area of the canvas 530, the canvas's context menu can be displayed, and by selecting an action from the menu, it is possible to set the action to be executed when the UI screen of that canvas is loaded in the constructed application (to be executed when the UI screen is displayed).

図5(b)は、アプリ名「UI1」のアプリの、UI画面名「ui1」のキャンバス530に、UI部品として、パイチャート531(pie chart、円グラフ)、ボタン532、テキストフィールド533、534、アウトプットフィールド535、(Output Field)、タブ部品536を配置した例である。操作パス531aは、選択されているUI部品を示す選択枠かつ拡大縮小の指示を受け付ける操作パス(操作ハンドル)であり、パイチャート531が選択されていることを示している。 Figure 5 (b) shows an example in which a pie chart 531, a button 532, text fields 533 and 534, an output field 535, and a tab component 536 are arranged as UI components on a canvas 530 with a UI screen name "ui1" of an application with an application name "UI1". Operation path 531a is a selection frame indicating the selected UI component and an operation path (operation handle) that accepts zoom instructions, and indicates that pie chart 531 is selected.

図4に、UIエディタ処理のフローチャートを示す。この処理は、開発者用端末100が実行する処理であり、図3のS319またはS323の後に続けて行われる処理である。 Figure 4 shows a flowchart of the UI editor process. This process is executed by the developer terminal 100 and follows S319 or S323 in Figure 3.

S401では、開発者用端末100は、選択中アプリの定義情報に基づき、サブメニュー領域520に選択中アプリのUI画面一覧を選択肢として表示する。このUI画面一覧に表示される各画面は、選択中アプリを実行環境にデプロイして構築し、アプリユーザー用端末200、201からアクセスしてアプリを実行した場合に表示する画面として設計している画面である。このUI画面一覧では、新規UI画面を追加する操作や、UI画面の削除操作も受付可能である。 In S401, the developer terminal 100 displays a list of UI screens of the selected app as options in the submenu area 520 based on the definition information of the selected app. Each screen displayed in this UI screen list is designed as a screen to be displayed when the selected app is deployed and constructed in an execution environment, and is accessed from the app user terminal 200, 201 and executed. This UI screen list can also accept operations to add new UI screens and delete UI screens.

S402では、開発者用端末100は、S401で表示されたUI画面一覧のうちいずれかのUI画面を選択する操作があったか否かを判定する。いずれかのUI画面が選択された場合はS404に進み、そうでない場合にはS403に進む。 In S402, the developer terminal 100 determines whether an operation to select any of the UI screens from the list of UI screens displayed in S401 has been performed. If any of the UI screens has been selected, the process proceeds to S404; if not, the process proceeds to S403.

S403では、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、112で後述する画面切替処理へ進む。そうでない場合にはS402に戻る。 In S403, it is determined whether or not an operation to select any of the options displayed in the main menu area 510 has been performed. If an option displayed in the main menu area 510 has been selected, the UI editor process is terminated, and the process proceeds to screen switching process 112, which will be described later. If not, the process returns to S402.

S404では、開発者用端末100は、メモリ102に記録した選択中アプリの定義情報に基づいて、キャンバス530にS402で選択されたUI画面を表示する。過去にUI部品が配置済みのUI画面であれば、定義情報に従って過去に配置されたUI部品がキャンバス530に表示される。すなわち、過去に途中まで作成したUI画面であれば続きから開発できる。S402で選択されたUI画面が新規に作成されたUI画面であれば、キャンバス530はUI部品が配置されていない空白の状態で表示される。S402で選択されたUI画面が、テンプレ―トとして予め用意されているUI画面(テンプレート画面)である場合には、ユーザーがそのUI画面に過去にUI部品を配置していなくても、予め定められたアクションが定義された雛形コンポーネントがキャンバス530の予め決まった位置に表示される。 In S404, the developer terminal 100 displays the UI screen selected in S402 on the canvas 530 based on the definition information of the selected application recorded in the memory 102. If the UI screen has UI parts previously placed on it, the UI parts previously placed according to the definition information are displayed on the canvas 530. In other words, if the UI screen was created only partially in the past, it is possible to continue development. If the UI screen selected in S402 is a newly created UI screen, the canvas 530 is displayed blank with no UI parts placed on it. If the UI screen selected in S402 is a UI screen (template screen) that has been prepared in advance as a template, a template component with a predetermined action defined is displayed in a predetermined position on the canvas 530, even if the user has not previously placed UI parts on that UI screen.

S405では、開発者用端末100は、サブメニュー領域520に、UI部品の一覧を表示する。すなわち、選択中アプリのUI画面一覧から、UI部品一覧の表示に切り替える。キャンバス530に配置可能なUI部品としては、種別としてINPUT、Button(ボタン)、Display(情報表示用部品)、Navigation、Layout、Chartが含まれ、それぞれに種別に複数のUI部品が分類されている。UI部品一覧では、まず、図5(c)に図示するように、UI部品の種別の一覧が表示され、表示された種別のいずれかを選択する操作があったことに応じて、選択された種別に分類されるUI部品が展開表示される。前述した図5(b)は、INPUTに対応する種別の選択肢522が選択され、INPUTに分類されたUI部品の一覧が表示された例である。INPUTに分類されたUI部品には、例えばテキストフィールド523、テキストエリア524が含まれる。サブメニュー領域520はスクロール可能であり、表示しきれない選択肢(展開している種別のUI部品の選択肢や、他の種別の選択肢)はスクロールして表示させることができる。図5(b)のように展開している種別の選択肢522が操作されると、展開していた種別のUI部品一覧が折りたたまれ、UI部品の種別の一覧が表示される。 In S405, the developer terminal 100 displays a list of UI parts in the submenu area 520. That is, the display is switched from the UI screen list of the selected application to the UI parts list. UI parts that can be arranged on the canvas 530 include types INPUT, Button, Display (information display part), Navigation, Layout, and Chart, and multiple UI parts are classified into each type. In the UI parts list, first, as shown in FIG. 5(c), a list of UI part types is displayed, and in response to an operation to select one of the displayed types, UI parts classified into the selected type are expanded and displayed. The above-mentioned FIG. 5(b) is an example in which the option 522 of the type corresponding to INPUT is selected and a list of UI parts classified into INPUT is displayed. UI parts classified into INPUT include, for example, a text field 523 and a text area 524. The submenu area 520 is scrollable, and options that cannot be displayed (options for the UI part of the expanded type and options for other types) can be scrolled to display them. When an option 522 for an expanded type is operated as in FIG. 5(b), the list of UI parts of the expanded type is collapsed, and a list of UI part types is displayed.

S406では、開発者用端末100は、サブメニュー領域520に表示されたUI部品が選択されたか否かを判定する。より詳しくは、サブメニュー領域520に表示されたUI部品をドラッグする操作が行われたか否かを判定する。サブメニュー領域520に表示されたUI部品が選択された場合にはS407に進み、そうでない場合にはS411へ進む。 In S406, the developer terminal 100 determines whether or not a UI part displayed in the submenu area 520 has been selected. More specifically, it determines whether or not an operation of dragging a UI part displayed in the submenu area 520 has been performed. If a UI part displayed in the submenu area 520 has been selected, the process proceeds to S407; if not, the process proceeds to S411.

S407では、開発者用端末100は、キャンバス530上の位置を指定する操作があったか否かを判定する。より詳しくは、ドラッグしていたUI部品をキャンバス530上にドロップする操作があったか否か判定する。キャンバス530上を指定する操作があった場合はS408へ進み、そうでない場合にはS407でキャンバス530上の位置の指定を待つ。なお、本実施形態ではドラッグアンドドロップの例を説明するが、サブメニュー領域520からUI部品を選択してキャンバス530上の指定位置に配置するための操作であれば操作方法はこれに限るものではない。 In S407, the developer terminal 100 determines whether an operation to specify a position on the canvas 530 has been performed. More specifically, it determines whether an operation to drop the dragged UI part onto the canvas 530 has been performed. If an operation to specify the canvas 530 has been performed, the process proceeds to S408, and if not, the process waits for the specification of a position on the canvas 530 in S407. Note that, although an example of drag and drop is described in this embodiment, the operation method is not limited to this as long as it is an operation to select a UI part from the submenu area 520 and place it at a specified position on the canvas 530.

S408では、開発者用端末100は、S407で指定されたキャンバス上の位置が、既に配置されているタブ部品(UI部品の一種)の領域に含まれるか否かを判定する。タブ部品の領域に含まれていない場合にはS409に進み、タブ部品の領域に含まれている場合にはS410へ進む。タブ部品は、例えば図5(b)に示すタブ部品536である。タブ部品は複数のタブを有し(図5(b)の例ではITEM1、ITEM2、ITEM3と表示された3つのタブ)、いずれかのタブが選択されたことに応じて、タブ部品で表示する表示内容を、選択されたタブに対応する要素画面に切り替える。 In S408, the developer terminal 100 determines whether the position on the canvas specified in S407 is included in the area of a tab part (a type of UI part) that has already been placed. If it is not included in the area of the tab part, the process proceeds to S409, and if it is included in the area of the tab part, the process proceeds to S410. An example of the tab part is the tab part 536 shown in FIG. 5(b). The tab part has multiple tabs (in the example of FIG. 5(b), there are three tabs displayed as ITEM1, ITEM2, and ITEM3), and when any of the tabs is selected, the display content displayed by the tab part is switched to the element screen corresponding to the selected tab.

図6(a)、(b)を用いて、タブ部品について説明する。図6(a)は、図5(b)とは異なるUI画面を表示したキャンバス530にタブ部品601を配置した場合のディスプレイ105における表示例である。タブ部品601の操作バス601aで示される範囲が、タブ部品601の占有領域である。操作バス601aを操作することで、要素画面を含むタブ部品601の全体の表示位置、全体の表示サイズを変更することができる。タブ部品601は、タブ610、タブ620、タブ630の3つのタブを持っている。各タブには、タブ部品のプロパティ設定で開発者によって設定可能なラベルがタブ名として表示されている。図示の例では、それぞれ、Tab0、Tab1、Tab2と表示されている。タブの数、順序はタブ部品のプロパティ設定から変更可能である。タブのプロパティ設定は、図7で後述するコンテキストメニュー処理のS706において、タブのコンテキストメニューからタブのプロパティボックスを開く操作があり、それに応じて表示されるタブのプロパティボックス(設定画面)に対する設定操作によって行われる。一点破線(説明のために図示したものであって表示されるものではない)で示す要素画面領域602は、選択されたタブに応じて表示内容が切り替わる領域である。要素画面領域602に表示される各タブに対応する表示内容を、各タブに対応する要素画面と称する。各タブに対応する要素画面にはそれぞれ異なるUI部品を配置可能である。図6(a)の例は、タブ610が選択され、タブ610に対応する要素画面が表示された例である。図示の例では、タブ610に対応する要素画面には、UI部品611とUI部品612が配置されている。図6(b)の例は、図6(a)の状態からタブ620がクリックされ、選択タブがタブ610からタブ620に変更された場合の表示例である。図6(b)では、要素画面領域602には選択されているタブ620に対応する要素画面が表示されている。図示の例では、タブ620に対応する要素画面には、UI部品621が配置されている。図6(a)、図6(b)の例では、定義情報には少なくとも、キャンバス530で編集中のUI画面のID(UI画面の識別情報)に対応付けて、タブ部品601のUI部品ID(UI部品の識別情報)とUI画面中におけるタブ部品601の位置が記録される。また、タブ部品601のタブ610のID(要素画面の識別情報)に対応付けて、UI部品611とUI部品612のIDと、タブ610の要素画面中におけるUI部品611とUI部品612のそれぞれの位置が記録される。また、タブ部品601のタブ620のIDに対応付けて、UI部品621のIDと、タブ620の要素画面中におけるUI部品621の位置が記録される。図4の説明に戻る。 The tab part will be described with reference to Figures 6(a) and (b). Figure 6(a) is an example of a display on the display 105 when a tab part 601 is placed on a canvas 530 that displays a UI screen different from that shown in Figure 5(b). The range indicated by the operation bus 601a of the tab part 601 is the occupied area of the tab part 601. By operating the operation bus 601a, the overall display position and overall display size of the tab part 601 including the element screen can be changed. The tab part 601 has three tabs, tab 610, tab 620, and tab 630. Labels that can be set by the developer in the property settings of the tab part are displayed as tab names on each tab. In the illustrated example, Tab0, Tab1, and Tab2 are displayed, respectively. The number and order of tabs can be changed from the property settings of the tab part. Tab property setting is performed by an operation to open a tab property box from the tab's context menu in S706 of the context menu process described later in FIG. 7, and a setting operation for the tab property box (setting screen) displayed in response to the operation. The element screen area 602 indicated by the dashed line (illustrated for explanation purposes, not displayed) is an area in which the display contents change depending on the selected tab. The display contents corresponding to each tab displayed in the element screen area 602 are called the element screen corresponding to each tab. Different UI parts can be arranged on the element screen corresponding to each tab. The example of FIG. 6(a) is an example in which the tab 610 is selected and the element screen corresponding to the tab 610 is displayed. In the illustrated example, the UI parts 611 and 612 are arranged on the element screen corresponding to the tab 610. The example of FIG. 6(b) is an example of a display in which the tab 620 is clicked from the state of FIG. 6(a) and the selected tab is changed from the tab 610 to the tab 620. In FIG. 6(b), the element screen area 602 displays the element screen corresponding to the selected tab 620. In the illustrated example, a UI part 621 is arranged on the element screen corresponding to the tab 620. In the examples of FIGS. 6A and 6B, the definition information records at least the UI part ID (UI part identification information) of the tab part 601 and the position of the tab part 601 in the UI screen in association with the ID (UI screen identification information) of the UI screen being edited on the canvas 530. Also, the IDs of the UI parts 611 and 612 and the respective positions of the UI parts 611 and 612 in the element screen of the tab 610 are recorded in association with the ID of the tab 610 of the tab part 601. Also, the ID of the UI part 621 and the position of the UI part 621 in the element screen of the tab 620 are recorded in association with the ID of the tab 620 of the tab part 601. Return to the description of FIG. 4.

S409では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品ID、配置座標、配置サイズなどを関連付けて記録する。 In S409, the developer terminal 100 places the UI part selected in S406 from the submenu area 520 at a specified position on the canvas 530 at a default size, and records information defining this in the definition information recorded in memory 102. That is, in the definition information, the type of UI part placed in S410, the UI part ID, placement coordinates, placement size, etc. are associated with the ID of the destination UI screen (the UI screen being edited) and recorded.

S410では、開発者用端末100は、サブメニュー領域520からS406で選択されたUI部品を、キャンバス530上の指定位置のタブ部品のうち、選択中のタブに対応する要素画面(現在表示中の要素画面)にデフォルトのサイズで配置し、そのことを定義する情報をメモリ102に記録した定義情報に記録する。すなわち、定義情報において、配置先のUI画面(編集中のUI画面)のIDに、S410で配置したUI部品の種別、UI部品IDとしてタブ部品のID、および、そのタブ部品において選択中だったタブのID、選択中だったタブに対応する要素画面中における配置座標、配置サイズなどを関連付けて記録する。このようにすることで、本実施形態ではタブ部品の各タブに対応する各要素画面に、それぞれ異なるUI部品を配置してレイアウトすることが可能である。またこのとき、UI部品の配置先の要素画面のタブを定義するために複雑な操作をする必要はなく、単に、配置したいUI部品をドラッグアンドドロップで配置する際に、配置先の要素画面を選択して表示させておけばよい。 In S410, the developer terminal 100 places the UI part selected in S406 from the submenu area 520 in the element screen (currently displayed element screen) corresponding to the selected tab among the tab parts at the specified position on the canvas 530 in a default size, and records the information defining this in the definition information recorded in the memory 102. That is, in the definition information, the type of the UI part placed in S410, the ID of the tab part as the UI part ID, the ID of the tab selected in the tab part, the placement coordinates in the element screen corresponding to the selected tab, the placement size, etc. are associated with the ID of the UI screen to which the UI part is to be placed (the UI screen being edited), and recorded. In this way, in this embodiment, it is possible to place and layout different UI parts on each element screen corresponding to each tab of the tab part. In addition, at this time, there is no need to perform complicated operations to define the tab of the element screen to which the UI part is to be placed, and it is sufficient to simply select and display the element screen to which the UI part is to be placed when placing the UI part to be placed by dragging and dropping it.

S411では、開発者用端末100は、キャンバス530に配置済みのUI部品がクリックなどで選択されたか否かを判定する。配置済みのUI部品がクリックされた(選択された)場合にはS412に進み、そうでない場合にはS415に進む。 In S411, the developer terminal 100 determines whether a UI component already placed on the canvas 530 has been selected by clicking or the like. If a UI component already placed has been clicked (selected), the process proceeds to S412; if not, the process proceeds to S415.

S412では、開発者用端末100は、S411でクリックされたUI部品に操作パスを表示する。操作パスの表示例が前述の操作パス531aや操作パス601aである。 In S412, the developer terminal 100 displays an operation path for the UI component clicked in S411. Examples of the operation path display are the operation path 531a and operation path 601a described above.

S413では、開発者用端末100は、S411においてクリックで指定された位置が、タブ部品のタブ部分の領域内であるか否かを判定する。タブ部分でない場合にはS431に進み、タブ部分である場合にはS414に進む。タブ部分は、対応する要素画面への切り替えを指示する指示領域である。 In S413, the developer terminal 100 determines whether the position specified by clicking in S411 is within the area of the tab portion of the tab component. If it is not a tab portion, the process proceeds to S431, and if it is a tab portion, the process proceeds to S414. The tab portion is a designation area that instructs switching to the corresponding element screen.

S414では、開発者用端末100は、タブ部品の要素画面領域の表示を、S411においてクリックで指定された位置のタブに対応する要素画面に切り替える。例えば、S411でタブ部品536のうち、ITEM1、ITEM2、ITEM3と表示された3つのタブのいずれかの位置がクリックされたことに応じて、S412でタブ部品536に対して操作パスを表示するとともに、要素画面領域436aの表示内容を、クリックされたタブに対応する要素画面のものに切り替える。また、例えば図6(a)のように表示されていた場合に、タブ620が指定されたことに応じて図6(b)の表示に切り替える。すなわち、クリック前に表示されていた要素画面に配置されていたUI部品611、612が非表示となり、代わりに、クリックされたタブ620に対応する要素画面に配置されているUI部品621が表示される。このような制御をするのは、開発者がタブ部品の所望のタブの要素画面に他のUI部品を配置したい場合に、配置先とする所望のタブの要素画面を定義する操作を簡単にするためである。開発者は、タブ部品の所望のタブの要素画面に他のUI部品を配置したい場合、配置したいUI部品をドラッグアンドドロップで配置する前に、所望のタブを単にクリックして所望の要素画面を表示させておけばよい。 In S414, the developer terminal 100 switches the display of the element screen area of the tab part to the element screen corresponding to the tab at the position specified by clicking in S411. For example, in response to clicking on any of the three tabs displayed as ITEM1, ITEM2, and ITEM3 among the tab parts 536 in S411, the operation path is displayed for the tab part 536 in S412, and the display content of the element screen area 436a is switched to that of the element screen corresponding to the clicked tab. Also, for example, when the display is as shown in FIG. 6(a), the display is switched to that of FIG. 6(b) in response to the specification of the tab 620. That is, the UI parts 611 and 612 arranged on the element screen displayed before the click are hidden, and instead, the UI part 621 arranged on the element screen corresponding to the clicked tab 620 is displayed. Such control is performed in order to simplify the operation of defining the element screen of the desired tab to be placed when the developer wants to place another UI part on the element screen of the desired tab of the tab part. If a developer wants to place another UI component on the element screen of a desired tab of a tab component, they can simply click on the desired tab to display the desired element screen before dragging and dropping the desired UI component.

なお、本実施形態では説明の簡略化のため、S409、S410、S413、S414の処理についてタブ部品を例にして説明したが、これに限るものではない。タブ部品以外でも、アプリケーションの構築後に、UI部品内の一部の表示内容が当該UI部品への操作に応じて切り替わる所定種別のUI部品であれば、タブ部品と同様にS409、S410、S413、S414の処理を適用可能である。 In this embodiment, for the sake of simplicity, the processes of S409, S410, S413, and S414 have been described using a tab part as an example, but this is not limiting. The processes of S409, S410, S413, and S414 can be applied to a UI part other than a tab part, as long as the UI part is a specific type in which part of the display content within the UI part changes in response to an operation on the UI part after the application is built.

一方、タブ部品などの所定種別のUI部品ではない他のUI部品の場合には、キャンバス530上でUI部品が選択されたことに応じて当該UI部品内の表示内容を切り替えることはしない。UI部品の選択に応じて行うのは操作バスの表示に係る処理だけであり、他のアクションは行わない。例えば、図5(b)のキャンバス530でボタン532が選択された場合には操作パスが表示されるのみで、ボタン532のアクション(構築されたアプリでボタン532が押下された場合に実行される処理)は実行しない。また、キャンバス530でテキストフィールド533が選択された場合には操作パスが表示されるのみで、テキストフィールド533内に文字入力カーソルを表示するなどの処理は行われない。 On the other hand, in the case of other UI parts that are not of a specific type, such as tab parts, the display content within the UI part is not changed in response to the selection of the UI part on canvas 530. The only processing performed in response to the selection of the UI part is processing related to the display of the operation bus, and no other actions are performed. For example, when button 532 is selected on canvas 530 in FIG. 5(b), only the operation path is displayed, and the action of button 532 (processing executed when button 532 is pressed in the constructed app) is not executed. Also, when text field 533 is selected on canvas 530, only the operation path is displayed, and processing such as displaying a character input cursor within text field 533 is not performed.

図6(c)、図6(d)、図6(e)を用いて、タブ部品と同様にS409、S410、S413、S414の処理を適用可能な種別のUI部品の例としてAppBarの例を説明する。図6(c)は、キャンバス530に、それぞれUI部品であるAppBar650、TextField661、Button662を配置した場合の例である。AppBar650は1つのUI部品であり、AppBar650の中に要素アイコン651と要素アイコン652が含まれる。要素アイコン651は、構築されたアプリケーションにおいては、ドロワーメニューを表示させるための指示を受け付ける表示アイテムである。要素アイコン652は、構築されたアプリケーションにおいては、ポップアップメニューを表示させるための指示を受け付ける表示アイテムである。キャンバス530において、配置済みのAppBar650のうち、要素アイコン651と要素アイコン652の位置がクリックされた場合にも、タブ部品のタブ部分と同様に制御する。より詳しくは以下のように制御する。 Using Fig. 6(c), Fig. 6(d), and Fig. 6(e), an example of AppBar will be described as an example of a type of UI part to which the processes of S409, S410, S413, and S414 can be applied in the same way as with the tab part. Fig. 6(c) is an example in which UI parts AppBar650, TextField661, and Button662 are arranged on the canvas 530. AppBar650 is one UI part, and includes element icons 651 and 652. In the constructed application, element icon 651 is a display item that accepts an instruction to display a drawer menu. In the constructed application, element icon 652 is a display item that accepts an instruction to display a pop-up menu. In the canvas 530, when the positions of element icons 651 and 652 of the arranged AppBar650 are clicked, they are controlled in the same way as the tab part of the tab part. More specifically, it is controlled as follows:

配置済みのAppBar650のうち、要素アイコン651の位置がクリックされた場合(S411でYes)、AppBar650に対する操作パスを表示する(S412)とともに、S413でYesと判定され、要素画面としてのドロワーメニューを表示する(S414)。これによって、図6(c)の表示状態から図6(d)の表示状態へ遷移する。図6(d)において、AppBar650に対する操作パス650aが表示され、かつ、要素アイコン651に対応する要素画面であるドロワーメニュー651aが表示されている。ドロワーメニュー651aは、画面左端から右側に引き出すようにして表示される領域であり、1つ以上のメニュー項目が表示される。ドロワーメニュー651aを表示させた状態で、サブメニュー領域520から他のUI部品をドラッグしてドロワーメニュー651aにドロップすることで、タブ部品を例にしてS408、S410で説明した処理と同様、ドロワーメニュー651aに対して他のUI部品を配置可能である。 When the position of element icon 651 in placed AppBar 650 is clicked (Yes in S411), an operation path for AppBar 650 is displayed (S412), and a Yes determination is made in S413, and a drawer menu is displayed as an element screen (S414). This causes a transition from the display state of FIG. 6(c) to the display state of FIG. 6(d). In FIG. 6(d), operation path 650a for AppBar 650 is displayed, and drawer menu 651a, which is an element screen corresponding to element icon 651, is also displayed. Drawer menu 651a is an area that is displayed by pulling out from the left edge of the screen to the right, and displays one or more menu items. With the drawer menu 651a displayed, other UI components can be dragged from the submenu area 520 and dropped onto the drawer menu 651a, similar to the process described in S408 and S410 using the tab component as an example, to place other UI components on the drawer menu 651a.

配置済みのAppBar650のうち、要素アイコン652の位置がクリックされた場合(S411でYes)、AppBar650に対する操作パスを表示する(S412)とともに、S413でYesと判定され、要素画面としてのポップアップメニューを表示する(S414)。これによって、図6(c)の表示状態から図6(e)の表示状態へ遷移する。図6(e)において、AppBar650に対する操作パス650aが表示され、かつ、要素アイコン652に対応する要素画面であるポップアップメニュー652aが表示されている。ポップアップメニュー652aは、要素アイコン652の付近に表示される領域であり、1つ以上のメニュー項目(選択肢)が表示される。ポップメニュー652aを表示させた状態で、サブメニュー領域520から他のUI部品をドラッグしてポップアップメニュー652aにドロップすることで、タブ部品を例にしてS408、S410で説明した処理と同様、ポップメニュー652aに対して他のUI部品を配置可能である。図4の説明に戻る。 When the position of the element icon 652 in the placed AppBar 650 is clicked (Yes in S411), the operation path for the AppBar 650 is displayed (S412), and the result of the determination in S413 is Yes, and a pop-up menu is displayed as an element screen (S414). This causes a transition from the display state of FIG. 6(c) to the display state of FIG. 6(e). In FIG. 6(e), the operation path 650a for the AppBar 650 is displayed, and a pop-up menu 652a, which is an element screen corresponding to the element icon 652, is displayed. The pop-up menu 652a is an area displayed near the element icon 652, and displays one or more menu items (options). With the pop-up menu 652a displayed, other UI parts can be placed on the pop-up menu 652a by dragging another UI part from the submenu area 520 and dropping it on the pop-up menu 652a, similar to the processing described in S408 and S410 using the tab part as an example. Return to the description of FIG. 4.

S415では、開発者用端末100は、キャンバス530上で配置済みのUI部品をドラッグする操作があったか否かを判定する。配置済みのUI部品をドラッグする操作があった場合にはS416に進み、そうでない場合にはS417へ進む。S416では、開発者用端末100は、ドラッグ操作に応じてドラッグされたUI部品(選択部品)の配置される位置を変更する。具体的には、ドロップされた位置に配置する。配置を変更すると、メモリ102に記録している定義情報も変更後の位置を表すように更新する。 In S415, the developer terminal 100 determines whether or not an operation to drag a UI component that has already been placed on the canvas 530 has been performed. If an operation to drag a UI component that has already been placed has been performed, the process proceeds to S416; if not, the process proceeds to S417. In S416, the developer terminal 100 changes the position at which the dragged UI component (selected component) is placed in response to the drag operation. Specifically, it places the UI component at the position where it was dropped. When the position is changed, the definition information recorded in memory 102 is also updated to indicate the new position.

S417では、開発者用端末100は、キャンバス530上で配置済みのUI部品の操作パスに対する操作があったか否かを判定する。操作パスへの操作があった場合にはS418に進み、そうでない場合にはS419へ進む。S418では、開発者用端末100は、操作パスへの操作に応じて操作パスが付されたUI部品(選択部品)のサイズを変更する。サイズを変更すると、メモリ102に記録している定義情報も変更後のサイズを表すように更新する。 In S417, the developer terminal 100 determines whether or not an operation has been performed on the operation path of a UI component already placed on the canvas 530. If an operation has been performed on the operation path, the process proceeds to S418; if not, the process proceeds to S419. In S418, the developer terminal 100 changes the size of the UI component (selected component) to which the operation path has been assigned in response to the operation on the operation path. When the size is changed, the definition information recorded in memory 102 is also updated to indicate the changed size.

S419では、開発者用端末100は、キャンバス530のいずれかの領域でコンテキストメニューを表示させる指示操作(本実施形態ではマウスの右クリック)があったか否かを判定する。右クリックがあった場合にはS420に進み、そうでない場合にはS421に進む。S420では、右クリックがあった際のマウスカーソルの位置に応じてコンテキストメニュー(右クリックメニュー)を表示し、コンテキストメニューに対する操作に応じた処理を行うコンテキストメニュー処理を行う。例えば、図5(b)のボタン532上にマウスカーソルがある状態で右クリックが行われた場合には、図5(d)に示すようなボタン532(指定UI部品)に関するコンテキストメニュー540を表示する。コンテキストメニュー540には、選択肢となるメニュー項目としてプロパティ541、アクション542、消去543が表示される。プロパティ541が選択されると、ボタン532に関するプロパティボックス(詳細設定ダイアログ)が表示され、ボタン532に表示するボタン名(ラベル)、ボタン532の色、数値指定でのサイズ、等の詳細な設定を行える。アクション542が選択されると、ボタン532に関するアクションボードが表示され、アクションボードに対してプログラミング言語であるJavaScriptでのアクションの入力が行える。ここで入力されるアクションは、構築されたアプリケーションにおいてボタン532(指定UI部品)が押下された場合に実行すべき処理である。消去543が選択されると、キャンバス530からボタン532を消去(削除)する。コンテキストメニュー処理の詳細については図7を用いて後述する。 In S419, the developer terminal 100 determines whether or not an instruction operation (in this embodiment, a right click of the mouse) to display a context menu has been performed in any area of the canvas 530. If a right click has been performed, the process proceeds to S420, and if not, the process proceeds to S421. In S420, a context menu (right click menu) is displayed according to the position of the mouse cursor when the right click has been performed, and a context menu process is performed to perform a process according to the operation on the context menu. For example, if a right click is performed with the mouse cursor on the button 532 in FIG. 5(b), a context menu 540 related to the button 532 (designated UI part) as shown in FIG. 5(d) is displayed. The context menu 540 displays properties 541, actions 542, and delete 543 as menu items to be selected. When properties 541 is selected, a property box (detailed settings dialog) related to the button 532 is displayed, and detailed settings such as the button name (label) to be displayed on the button 532, the color of the button 532, and the size specified by a numerical value can be performed. When action 542 is selected, an action board related to button 532 is displayed, and an action can be input to the action board in JavaScript, a programming language. The action input here is the process to be executed when button 532 (designated UI component) is pressed in the constructed application. When delete 543 is selected, button 532 is deleted (removed) from canvas 530. Details of the context menu process will be described later with reference to FIG. 7.

S421では、開発者用端末100は、保存ボタン504が押下されたか否かを判定する。保存ボタン504が押下された場合にはS422に進み、そうでない場合にはS423へ進む。S422では、開発者用端末100は、メモリ102に記録している編集中のアプリケーションの定義情報を開発環境300に送信する。開発環境300は、定義情報を受信すると図33(a)または図35(a)で後述する保存処理を行う。 In S421, the developer terminal 100 determines whether the Save button 504 has been pressed. If the Save button 504 has been pressed, the process proceeds to S422; if not, the process proceeds to S423. In S422, the developer terminal 100 transmits the definition information of the application being edited that is recorded in the memory 102 to the development environment 300. When the development environment 300 receives the definition information, it performs the save process described below in FIG. 33(a) or FIG. 35(a).

S423では、開発者用端末100は、プレビューボタン505が押下されたか否かを判定する。プレビューボタン505が押下されたと判定した場合にはS424へ進み、そうでない場合にはS425へ進む。S424では、開発者用端末100は、プレビュー処理を行う。プレビュー処理では、キャンバス503を非表示とし、メモリ102に記録している定義情報または開発環境300に記録されている定義情報に基づいて、キャンバス503で編集しているUI画面について、構築されたアプリケーションでそのUI画面を見た場合と同じ見た目となるようなプレビューを表示する。プレビューでは、UI部品を操作するための操作パスは表示されない。また、UIエディタ画面では実行されない(キャンバス530への操作では実行されない)一部の動作について、プレビューでは実行される。例えば、画面遷移用のUI部品やリンク部分を操作した場合に、画面遷移やリンク先への遷移が実行される。また、項目に対する選択枠の移動をキーボードのタブキーの操作によって行うといった動作も実行される。なお、アクションボートに開発者が入力したアクションやデータベースの参照といった動作は行われない。その分、プレビュー処理は実際にデプロイして確認する場合よりも高速に表示することができる。 In S423, the developer terminal 100 determines whether the preview button 505 has been pressed. If it is determined that the preview button 505 has been pressed, the process proceeds to S424, and if not, the process proceeds to S425. In S424, the developer terminal 100 performs a preview process. In the preview process, the canvas 503 is hidden, and a preview is displayed of the UI screen being edited on the canvas 503, based on the definition information recorded in the memory 102 or the definition information recorded in the development environment 300, so that the UI screen will look the same as if the UI screen were viewed in the constructed application. In the preview, the operation path for operating the UI parts is not displayed. In addition, some operations that are not performed on the UI editor screen (not performed by operations on the canvas 530) are performed in the preview. For example, when a UI part for screen transition or a link part is operated, a screen transition or a transition to a link destination is performed. In addition, an operation such as moving a selection frame for an item by operating the tab key on the keyboard is also performed. Note that actions entered by the developer in the action boat and database references will not be performed. Instead, the preview process can be displayed faster than if you were to actually deploy and check the results.

S425では、開発者用端末100は、デプロイボタン506が押下されたか否かを判定する。デプロイボタン506が押下された場合にはS426へ進み、そうでない場合にはS427へ進む。S426では、開発者用端末100は、デプロイ処理を実行する。デプロイ処理については図24(a)を用いて後述する。なおデプロイボタン506が押下されてデプロイ処理を行う時には開発者はデプロイ先となる実行環境を選択する操作はする必要がなく、予め選択してあって、選択中実行環境ボックス501に表示されている選択中実行環境へデプロイが行われる。開発者は、特定の1つの実行環境にデプロイすべき内容をまとめて更新するように作業する場合が多い。そのため、本システムでは、更新すべきアプリケーションの選択より前にデプロイ先となる実行環境を選択させ(図3のS311)、アプリケーションをデプロイする際に都度実行環境を選択させることはない。従って、誤って意図しない実行環境にデプロイしてしまうという操作ミスを抑止し、また、作業を効率かすることができる。また、開発環境300にログインする際に認証処理をするための操作を行ったものの、デプロイする実行環境に対して別途、アカウント認証処理するための操作をする必要は無い。従って作業手数の増大を防ぎ効率的に作業することが可能である。すなわち、開発者用端末100は、デプロイ先の実行環境に関する認証情報を開発者ユーザーから取得することはない。 In S425, the developer terminal 100 determines whether the deploy button 506 has been pressed. If the deploy button 506 has been pressed, the process proceeds to S426. If not, the process proceeds to S427. In S426, the developer terminal 100 executes the deploy process. The deploy process will be described later with reference to FIG. 24(a). When the deploy button 506 is pressed to execute the deploy process, the developer does not need to select the execution environment to which the application is to be deployed, and the deployment is performed to the selected execution environment that has been selected in advance and is displayed in the selected execution environment box 501. In many cases, developers work to update the contents to be deployed to a specific execution environment all at once. Therefore, in this system, the execution environment to which the application is to be deployed is selected before the selection of the application to be updated (S311 in FIG. 3), and the execution environment is not selected each time the application is deployed. This prevents operational errors such as accidentally deploying to an unintended execution environment, and also makes the work more efficient. Furthermore, although an operation for authentication processing is performed when logging in to the development environment 300, there is no need to perform a separate operation for account authentication processing for the execution environment to be deployed to. This makes it possible to prevent an increase in the amount of work required and to work efficiently. In other words, the developer terminal 100 does not obtain authentication information related to the execution environment to which the development is to be performed from the developer user.

S427では、開発者用端末100は、選択中実行環境を変更する操作があったか否かを判定する。具体的には、選択中実行環境ボックス501に対して、選択中実行環境を変更する操作があったか否かを判定する。選択中実行環境を変更する操作があった場合にはS428へ進み、そうでない場合にはS429へ進む。S428では、開発者用端末100は、選択された実行環境を特定する情報(実行環境IDなど)を「選択中実行環境」としてメモリ102に記録するとともに、開発環境300に送信する。また、選択中実行環境ボックス501の表示内容を、変更後の選択中実行環境を表すように更新する。開発環境300では、選択中実行環境を特定する情報を受信すると、それに基づき、選択中実行環境を、ストレージ320のログイン開発者用の領域に保存されている、設定管理用のファイルに記録する。 In S427, the developer terminal 100 determines whether an operation to change the selected execution environment has been performed. Specifically, it determines whether an operation to change the selected execution environment has been performed on the selected execution environment box 501. If an operation to change the selected execution environment has been performed, the process proceeds to S428. If not, the process proceeds to S429. In S428, the developer terminal 100 records information identifying the selected execution environment (such as an execution environment ID) in memory 102 as the "selected execution environment" and transmits the information to the development environment 300. The developer terminal 100 also updates the display content of the selected execution environment box 501 to represent the changed selected execution environment. When the development environment 300 receives the information identifying the selected execution environment, the development environment 300 records the selected execution environment in a file for setting management stored in an area for the logged-in developer in storage 320 based on the information.

S429では、開発者用端末100は、編集対象のアプリケーションを変更する操作があったか否かを判定する。具体的には、選択中アプリボックス502に対して選択中アプリを変更する操作があったか否かを判定する。選択中アプリを変更する操作があった場合には図3のS317に進み、変更後の選択中アプリに基づいてS317以降の処理を実行する。すなわち、サブメニュー領域520、キャンバス530の表示内容が更新される。選択中アプリを変更する操作がなかった場合には処理はS430へ進む。 In S429, the developer terminal 100 determines whether an operation to change the application to be edited has been performed. Specifically, it determines whether an operation to change the selected app has been performed in the selected app box 502. If an operation to change the selected app has been performed, the process proceeds to S317 in FIG. 3, and the process from S317 onwards is executed based on the changed selected app. That is, the display contents of the submenu area 520 and the canvas 530 are updated. If an operation to change the selected app has not been performed, the process proceeds to S430.

S430では、開発者用端末100は、編集対象のUI画面を変更する操作があったか否かを判定する。具体的には、選択中UI画面ボックス503に対して、選択中UI画面を変更する操作があったか否かを判定する。選択中UI画面を変更する操作があった場合にはS404に進み、変更後の選択中UI画面に基づいて処理を行う。すなわち、キャンバス530の表示内容は変更後の選択中UI画面の内容に更新される(切り替わる)。選択中UI画面を変更する操作がなかった場合には処理はS431へ進む。 In S430, the developer terminal 100 determines whether or not an operation to change the UI screen to be edited has been performed. Specifically, it determines whether or not an operation to change the selected UI screen has been performed for the selected UI screen box 503. If an operation to change the selected UI screen has been performed, the process proceeds to S404, and processing is performed based on the changed selected UI screen. In other words, the display content of the canvas 530 is updated (switched) to the content of the changed selected UI screen. If no operation to change the selected UI screen has been performed, the process proceeds to S431.

S431では、開発者用端末100は、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作があったか否かを判定する。メインメニュー領域510に表示された選択肢が選択された場合にはUIエディタ処理を終了し、図12で後述する画面切替処理へ進む。そうでない場合にはS406に戻る。 In S431, the developer terminal 100 determines whether or not an operation has been performed to select any of the options displayed in the main menu area 510. If an option displayed in the main menu area 510 has been selected, the UI editor process ends and the process proceeds to the screen switching process described later in FIG. 12. If not, the process returns to S406.

<コンテキストメニュー処理>
図7に、コンテキストメニュー処理のフローチャートを示す。この処理は、図5のS420の詳細フローチャートである。
<Context menu processing>
7 shows a flowchart of the context menu process, which is a detailed flowchart of S420 in FIG.

S701では、開発者用端末100は、表示すべきコンテキストメニューが、ボタン(Button)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がボタンであるか否かを判定する。ボタンである場合にはS710に進み、そうでない場合にはS702に進む。 In S701, the developer terminal 100 determines whether the context menu to be displayed is related to a UI part of the button type. More specifically, it determines whether the type of the UI part (specified UI part) specified with the mouse when the right-click was accepted in S419 is a button. If it is a button, the process proceeds to S710, and if not, the process proceeds to S702.

S702では、開発者用端末100は、表示すべきコンテキストメニューが、キャンバスに関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していた位置が、キャンバス530のうちUI部品が配置されていない空白領域であったか否かを判定する。空白領域であった場合(表示すべきコンテキストメニューが、キャンバスに関するものである場合)はS703に進み、そうでない場合にはS704に進む。 In S702, the developer terminal 100 determines whether the context menu to be displayed is related to the canvas. More specifically, it determines whether the position designated by the mouse when the right-click was accepted in S419 was a blank area of the canvas 530 where no UI components were placed. If it is a blank area (if the context menu to be displayed is related to the canvas), the process proceeds to S703; otherwise, the process proceeds to S704.

S703では、開発者用端末100は、キャンバスのコンテキストメニュー処理を行う。キャンバスのコンテキトメニュー処理については図19を用いて後述する。 In S703, the developer terminal 100 performs canvas context menu processing. Canvas context menu processing will be described later with reference to FIG. 19.

S704では、開発者用端末100は、表示すべきコンテキストメニューが、データグリッド(表)の種別のUI部品に関するものであるか否かを判定する。より詳しくは、S419で右クリックを受け付けた際にマウスで指定していたUI部品(指定UI部品)の種別がデータグリッドであるか否かを判定する。データグリッドである場合にはS705に進み、そうでない場合にはS706に進む。 In S704, the developer terminal 100 determines whether the context menu to be displayed is related to a UI component of type data grid (table). More specifically, it determines whether the type of the UI component (specified UI component) specified with the mouse when the right-click was accepted in S419 is a data grid. If it is a data grid, the process proceeds to S705, and if not, the process proceeds to S706.

S705では、開発者用端末100は、データグリッドのコンテキストメニュー処理を行う。データグリッドのコンテキトメニュー処理については図30を用いて後述する。 In S705, the developer terminal 100 performs context menu processing of the data grid. Context menu processing of the data grid will be described later with reference to FIG. 30.

S706では、開発者用端末100は、その他の処理として、指定された位置に対応する指定対象に関するコンテキストメニューを表示し、操作に応じた処理を行う。詳細は省略する。 In S706, as other processing, the developer terminal 100 displays a context menu related to the specified target corresponding to the specified position and performs processing according to the operation. Details are omitted.

S710では、開発者用端末100は、編集対象のUI画面(選択中UI画面)がテンプレート画面であるか否かを判定する。テンプレート画面である場合にはS721に進み、そうでない場合にはS711に進む。 In S710, the developer terminal 100 determines whether the UI screen to be edited (selected UI screen) is a template screen. If it is a template screen, the process proceeds to S721; if not, the process proceeds to S711.

S711では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、図5(d)に示したボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。 In S711, the developer terminal 100 displays the button context menu shown in FIG. 5(d) superimposed near the specified position (mouse cursor position) as a context menu for the specified UI component.

S712では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティ(図5(d)のプロパティ541)が選択されたか否かを判定する。プロパティが選択された場合にはS713に進み、そうでない場合にはS714へ進む。 In S712, the developer terminal 100 determines whether or not a property (property 541 in FIG. 5(d)) has been selected from the options included in the context menu. If a property has been selected, the process proceeds to S713; if not, the process proceeds to S714.

S713では、開発者用端末100は、指定UI部品に関するプロパティボックス(詳細設定ダイアログ)として、ボタン用のプロパティボックスをキャンバス530に重畳して表示する。そして、プロパティボックスに対する各種設定操作を受け付ける。ここで、例えば、指定UI部品であるボタンに表示するボタン名(ラベル)、ボタンの色、数値指定でのサイズ、等の詳細な設定を行える。設定を行って反映操作を行うと、キャンバス530において、設定を反映した表示形態で指定UI部品が表示される。 In S713, the developer terminal 100 displays a property box for the button superimposed on the canvas 530 as a property box (detailed settings dialog) for the specified UI part. Then, various setting operations for the property box are accepted. Here, detailed settings can be made, for example, such as the button name (label) to be displayed for the button, which is the specified UI part, the button color, and the size specified by a numerical value. When the settings are made and an operation to reflect them is performed, the specified UI part is displayed on the canvas 530 in a display form that reflects the settings.

S714では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、アクション(図5(d)のプロパティ542)が選択されたか否かを判定する。アクションが選択された場合にはS715に進み、そうでない場合にはS716へ進む。 In S714, the developer terminal 100 determines whether an action (property 542 in FIG. 5(d)) has been selected from the options included in the context menu. If an action has been selected, the process proceeds to S715; if not, the process proceeds to S716.

S715では、開発者用端末100は、指定UI部品であるボタンに関するアクションボード処理を行う。アクションボード処理については図8を用いて後述する。 In S715, the developer terminal 100 performs action board processing for the button, which is the specified UI component. The action board processing will be described later with reference to FIG. 8.

S716では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、消去(図5(d)の消去543)が選択されたか否かを判定する。消去が選択された場合にはS717に進み、そうでない場合にはS718へ進む。 In S716, the developer terminal 100 determines whether or not Delete (Delete 543 in FIG. 5(d)) has been selected from the options included in the context menu. If Delete has been selected, the process proceeds to S717; if not, the process proceeds to S718.

S717では、開発者用端末100は、指定UI部品を消去し、メモリ102に記録した定義情報のうち、指定UI部品に関する情報(位置やサイズなどの定義、プロパティやアクションなど)を消去する。これによって、キャンバス530において指定UI部品は消去(削除)されて非表示となる。 In S717, the developer terminal 100 erases the specified UI component, and erases information about the specified UI component (definitions such as position and size, properties and actions, etc.) from the definition information recorded in memory 102. As a result, the specified UI component is erased (deleted) and hidden from the canvas 530.

S718では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、他の選択肢が選択されたか否かを判定する。他の選択肢が選択された場合にはS719に進み、選択された選択肢に応じた処理を行う。そうでない場合にはS720へ進む。 In S718, the developer terminal 100 determines whether another option has been selected from the options included in the context menu. If another option has been selected, the process proceeds to S719, where processing according to the selected option is performed. If not, the process proceeds to S720.

S720では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7の処理を終了する。閉じる操作がない場合にはS712に戻る。 In S720, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing in FIG. 7 ends. If no operation to close the context menu has been performed, the processing returns to S712.

一方、S721では、開発者用端末100は、指定UI部品に関するコンテキストメニューとして、図26(d)に示す、テンプレート画面用で、かつ、ボタン用のコンテキストメニューを指定位置(マウスカーソル位置)の近傍に重畳表示する。テンプレート画面用のコンテキストメニュー(図26(d)の雛形部品2634)には、通常のUI画面用のコンテキストメニュー(図5(d)に示したコンテキストメニュー540)と異なり、選択肢としてアクション、消去は表示されず、プロパティだけが表示される。すなわち、UI画面のうち、テンプレートの画面に配置されたUI部品に関しては、当該UI部品が操作された場合のアクションを開発者が設定できないようにしている。この理由については後述する。 Meanwhile, in S721, the developer terminal 100 displays a context menu for the template screen and for a button, as shown in FIG. 26(d), superimposed near the specified position (mouse cursor position) as a context menu for the specified UI part. Unlike the context menu for a normal UI screen (context menu 540 shown in FIG. 5(d)), the context menu for the template screen (template part 2634 in FIG. 26(d)) does not display options such as action or delete, but only properties. In other words, for UI parts placed on the template screen among the UI screens, the developer is not allowed to set the action to be taken when the UI part is operated. The reason for this will be explained later.

S722では、開発者用端末100は、コンテキストメニューに含まれる選択肢のうち、プロパティが選択されたか否かを判定する。プロパティが選択された場合にはS723に進み、そうでない場合にはS724へ進む。S723の処理はS713と同様である。 In S722, the developer terminal 100 determines whether or not Properties has been selected from the options included in the context menu. If Properties has been selected, the process proceeds to S723; if not, the process proceeds to S724. The process of S723 is the same as S713.

S724では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、コンテキストメニューを非表示とし、図7の処理を終了する。閉じる操作がない場合にはS722に戻る。 In S724, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden and the processing in FIG. 7 ends. If no operation to close the context menu has been performed, the processing returns to S722.

<アクションボード処理>
アクションボードに関する処理について説明する。キャンバスに配置しているUI部品を指定してコンテキストメニューからアクションを選択すると、指定されたUI部品に関するアクションを設定するためのアクションボートを表示する。例えば、図9(a)に示すようなUI画面を編集していた場合を考える。図9(a)は、ディスプレイ105におけるUIエディタ画面の一部を示す図である。図9(a)では、サブメニュー領域520にUI部品一覧が表示され、キャンバス900に編集対象のUI画面が表示されている。キャンバス900には、ボタンであるUI部品901と、その他のUI部品が配置されている。UI部品901が指定され、コンテキストメニューよりアクションの選択肢が選択されたことに応じて、図9(b)に示すようなアクションボードが表示される。
<Action Board Processing>
The process related to the action board will be described. When a UI part arranged on the canvas is designated and an action is selected from the context menu, an action board for setting an action related to the designated UI part is displayed. For example, consider a case where a UI screen as shown in FIG. 9A is edited. FIG. 9A is a diagram showing a part of the UI editor screen on the display 105. In FIG. 9A, a list of UI parts is displayed in the submenu area 520, and the UI screen to be edited is displayed on the canvas 900. On the canvas 900, a UI part 901 which is a button and other UI parts are arranged. When the UI part 901 is designated and an action option is selected from the context menu, an action board as shown in FIG. 9B is displayed.

図9(b)は、UI部品901に関するアクションボードの表示例である。アクションボード910は、キャンバス900が表示されていた領域に、キャンバスに代えて表示される。テンプレート画面に予め配置される雛形部品(雛形コンポーネント)でなければ、開発者が過去に指定UI部品に対してアクションを設定していなければ、アクションボート910は図9(b)のように空白で表示される。なお、アクションボード910に「1」と表示されているのは行数を示すガイド表示であって、アクションの内容ではない。開発者はこのアクションボード910に、操作部106に含まれるキーボードを操作して、プログラム言語であるJavaScriptで任意の文字列を入力することにより、任意のアクションを設定することができる。アクションボードで設定された内容を実行するトリガーは予め定められており、指定UI部品が操作されたことである。従って開発者は、アクションを実行するトリガーが何かというのは設定する必要がない(JavaScriptで記述する必要はない)。例えば、指定UI部品がボタンである場合は、構築後のアプリにおいてそのボタンが押下されたことがトリガーであり、トリガーの発生に応じて、そのボタンのアクションボードに設定したアクションが実行される。 9B is an example of the display of an action board for a UI part 901. The action board 910 is displayed in place of the canvas in the area where the canvas 900 was displayed. If the part is not a template part (template component) that is placed in advance on the template screen, and if the developer has not previously set an action for the specified UI part, the action board 910 is displayed blank as shown in FIG. 9B. Note that the "1" displayed on the action board 910 is a guide display indicating the number of lines, and is not the content of the action. The developer can set any action on this action board 910 by operating the keyboard included in the operation unit 106 and inputting any character string in JavaScript, which is a programming language. The trigger for executing the content set on the action board is predetermined, and is the operation of the specified UI part. Therefore, the developer does not need to set what the trigger for executing the action is (it is not necessary to write it in JavaScript). For example, if the specified UI part is a button, pressing that button in the constructed app will be the trigger, and when the trigger occurs, the action set in the action board for that button will be executed.

また、アクションボード910とともに、サブメニュー領域には、UIエディタ画面で表示されていた図9(a)のようなUI部品一覧、あるいはUI画面一覧に代えて、関数(Function)一覧920が表示される。関数一覧920には、アクションボード910の表示を指示する選択肢922と、関数のそれぞれを表示させる指示をする関数の選択肢とが表示される。なお、予め用意された関数ではなく、開発者(ユーザー)が後述する関数追加ボタン921を押下して作成(追加)した関数を創作関数(作成関数、追加関数、自作関数)と称するものとする。自動的に作成された関数や予め用意された関数が無く、開発者が過去に指定UI部品に対して創作関数を作成していなければ、関数一覧920には、図9(b)に示すように、関数の選択肢は表示されず、選択肢922と関数追加ボタン921だけが表示される。 In addition to the action board 910, a function list 920 is displayed in the submenu area instead of the UI parts list or UI screen list as shown in FIG. 9(a) displayed on the UI editor screen. The function list 920 displays an option 922 for instructing the display of the action board 910 and function options for instructing the display of each function. Note that a function that is not a pre-prepared function but is created (added) by a developer (user) by pressing a function add button 921 (described later) is called an original function (created function, added function, self-made function). If there is no automatically created function or pre-prepared function and the developer has not previously created an original function for the specified UI part, the function list 920 does not display function options, and only the option 922 and the function add button 921 are displayed, as shown in FIG. 9(b).

関数追加ボタン921が押下されると、創作関数を追加するためのダイアログボックス(追加ダイアログ930と称する)を表示する。図9(c)に追加ダイアログ930の表示例を示す。追加ダイアログ930には、関数の種別(Function Type)の選択を受け付ける種別選択欄931と、関数の名前(Function Name)の入力を受け付ける関数名入力欄932と、SAVEボタン933が表示される。追加ダイアログに対する入力が行われ、SAVEボタン933が押下されると、種別選択欄931で選択された種別に応じた関数の設定画面が表示されるとともに、関数一覧920に関数名入力欄932に入力された関数名が追加で表示される。 When the Add Function button 921 is pressed, a dialog box for adding an original function (called the Add dialog 930) is displayed. FIG. 9(c) shows an example of the Add dialog 930. The Add dialog 930 displays a type selection field 931 that accepts the selection of the function type, a function name input field 932 that accepts the input of the function name, and a SAVE button 933. When input is made to the Add dialog and the SAVE button 933 is pressed, a setting screen for the function corresponding to the type selected in the type selection field 931 is displayed, and the function name entered in the function name input field 932 is added to the function list 920.

図9(d)は、種別選択欄931でRESTが選択された場合に表示されるREST関数設定画面の表示例である。アクションボード910に代えて、REST(REpresentational State Transfer)を用いた関数(REST関数)を作成するために必要な各種設定を受け付けるためのREST関数設定画面940が表示される。また、関数一覧920には、関数の選択肢として、関数名入力欄932に入力された関数名「rest01」の関数923が表示される。なお、「rest01」の前に表示されているアイコンは、関数923の種別がREST関数であることを示している。関数の設定画面で全ての必須設定項目が設定されていない場合(設定すべき情報が不足している場合)には、関数が未完成であることを示す未完マーク929が表示され、対応する関数923が未完成の状態であることが識別可能に表示される。 9D is an example of a REST function setting screen that is displayed when REST is selected in the type selection field 931. Instead of the action board 910, a REST function setting screen 940 is displayed for accepting various settings required to create a function (REST function) using REST (REpresentational State Transfer). In addition, the function list 920 displays a function 923 with the function name "rest01" entered in the function name input field 932 as a function option. The icon displayed in front of "rest01" indicates that the type of the function 923 is a REST function. If all required setting items are not set on the function setting screen (if information to be set is missing), an incomplete mark 929 indicating that the function is incomplete is displayed, and the corresponding function 923 is identifiably in an incomplete state.

図9(d)のREST関数設定画面940には、設定欄941~944が表示される。設定欄941は、関数名の設定画面であり、初期状態では関数名入力欄932に入力された関数名が表示されるが、開発者からの入力操作に応じて変更可能である。設定欄942はarguments(引数)を設定するための変数名を設定する設定欄である。本実施形態ではparamがデフォルトで設定されており、変更できないものとする。変更できないことを示すためにグレーアウトして表示される。設定欄943は、REST関数のタイプを設定する設定欄である。この領域の右端の三角アイコンを操作することでプルダウンメニューに選択肢としてGET、POST、PUT、DELETEが表示され、いずれかの選択肢を選択して設定することができる。ここで設定される種別は、この関数が行うリクエストの種別である。設定欄944はこの関数が行うリクエストを送信する先となるURLの設定欄である。このように、REST関数設定画面940でREST関数を作成する場合には、開発者はプログラム言語でソースコードの文字列を記述する必要はない。 The REST function setting screen 940 in FIG. 9D displays setting fields 941 to 944. The setting field 941 is a setting screen for the function name, and in the initial state, the function name entered in the function name input field 932 is displayed, but it can be changed according to input operations from the developer. The setting field 942 is a setting field for setting the variable name for setting arguments. In this embodiment, param is set by default and cannot be changed. It is displayed grayed out to indicate that it cannot be changed. The setting field 943 is a setting field for setting the type of the REST function. By operating the triangular icon on the right end of this area, GET, POST, PUT, and DELETE are displayed as options in a pull-down menu, and one of the options can be selected and set. The type set here is the type of request made by this function. The setting field 944 is a setting field for the URL to which the request made by this function is sent. In this way, when creating a REST function on the REST function setting screen 940, the developer does not need to write the source code string in a programming language.

図10(a)~(d)に、更に創作関数の設定画面とアクションボードの表示例を示す。図10において、図9と同じものについては図10と同じ符号を付し、説明を省略する。 Figures 10(a) to (d) further show examples of the creation function setting screen and the action board display. In Figure 10, the same reference numerals as in Figure 9 are used for the same elements, and the explanation will be omitted.

図10(a)は、種別選択欄931でSQLが選択された場合に表示されるSQL関数設定画面の表示例である。アクションボード910に代えて、SQL(Structured Query Language)を用いた関数(SQL関数)を作成するために必要な各種設定を受け付けるためのSQL関数設定画面950が表示される。また、関数一覧920には、関数の選択肢として、関数名入力欄932に入力された関数名「sql01」の関数924が未完マーク929とともに表示される。なお、「sql01」の前に表示されているアイコンは、関数924の種別がSQL関数であることを示している。設定欄951は、関数名の設定画面であり、初期状態では関数名入力欄932に入力された関数名が表示されるが、開発者からの入力操作に応じて変更可能である。設定欄952はarguments(引数)を設定するための変数名を設定する設定欄である。本実施形態ではparamがデフォルトで設定されており、変更できないものとする。変更できないことを示すためにグレーアウトして表示される。設定欄953は、コンピュータ言語の一種であるSQL(データベース言語であり、プログラミング言語ではない)で、データベースへ指示を出す文字列(SQL文、SQLステートメント)を入力するための入力欄である。開発者は、設定欄953に対して、操作部106に含まれるキーボードなどから、任意のSQL STATEMENTを入力することができる。このように、SQL関数設定画面950でSQL関数を作成する場合には、開発者はプログラム言語でソースコードの文字列を記述する必要はない。 10A is an example of a display of an SQL function setting screen that is displayed when SQL is selected in the type selection field 931. Instead of the action board 910, an SQL function setting screen 950 is displayed for accepting various settings required to create a function (SQL function) using SQL (Structured Query Language). In addition, in the function list 920, the function 924 with the function name "sql01" entered in the function name input field 932 is displayed as a function option together with an incomplete mark 929. The icon displayed in front of "sql01" indicates that the type of the function 924 is an SQL function. The setting field 951 is a setting screen for the function name, and in the initial state, the function name entered in the function name input field 932 is displayed, but it can be changed according to input operations by the developer. The setting field 952 is a setting field for setting a variable name for setting arguments. In this embodiment, param is set as the default and cannot be changed. It is displayed as grayed out to indicate that it cannot be changed. The setting field 953 is an input field for inputting a character string (SQL sentence, SQL statement) that issues an instruction to a database in SQL (a database language, not a programming language), which is a type of computer language. The developer can input any SQL STATEMENT into the setting field 953 using a keyboard included in the operation unit 106 or the like. In this way, when creating an SQL function on the SQL function setting screen 950, the developer does not need to write a character string of the source code in a programming language.

図10(b)は、開発者が創作関数である関数923~925を作成した後に、アクションボード910に、開発者がある程度JavaScriptでコード(文字列)を入力(記述)した後に、「sq」と入力した段階の表示例である。本実施形態では、開発者ユーザーが文字列を入力した際に、入力された文字列が作成済みの創作関数の関数名(識別情報)と前方一致している場合には、コードアシスト欄911に、前方一致した関数名を入力候補の選択肢として表示する。図示の例では、入力された「sq」が、作成済みの創作関数である関数924の関数名「sql01」と前方一致するため、選択肢として「sql01」が表示される。ユーザーが、コードアシスト欄911に表示された「sql01」を選択する操作を行うと、「l01」を入力する操作を行わなくとも、図10(c)に示すように、アクションボード910に「sql01」が入力される。このコードアシスト機能により、開発者(ユーザー)が創作関数の関数名の文字の全てをキーボードで打たなくとも創作関数の関数名(識別情報)を入力することができ、操作手数の削減に寄与する。また、作成済みの創作関数の関数名に前方一致していればコードアシスト欄911にフルネームが表示され、一致していなければ(すなわち、その文字列で始まる関数が存在しなければ)コードアシスト欄911は表示されない。従って開発者は、自身が作成済みの創作関数の関数名として誤っていないことを確認して入力することができ、関数名の入力ミスを防止することができる。なお、前方一致する創作関数が複数ある場合には、コードアシスト欄911には、複数の選択肢が表示される。また、コードアシスト欄911に表示される創作関数の関数名は、アクションボード910の対象となっている指定UI部品(図示の例ではUI部品901)について作成された関数であって、他のUI部品について作成された創作関数については表示されない。従って、誤って他のUI部品について作成した創作関数の関数名であって、指定UI部品の創作関数としては存在しない関数名をアクションボード910に記述してしまうミスも防止することができる。 FIG. 10B shows an example of the display at the stage where the developer has created functions 923-925, input (describe) some code (character string) in JavaScript into the action board 910, and then inputs "sq". In this embodiment, when the developer user inputs a character string, if the input character string matches the function name (identification information) of an already created created function, the code assist field 911 displays the matching function name as an input candidate option. In the example shown, the input "sq" matches the function name "sql01" of function 924, which is an already created created function, so "sql01" is displayed as an option. When the user performs an operation to select "sql01" displayed in the code assist field 911, "sql01" is input into the action board 910 as shown in FIG. 10C, even if the user does not perform an operation to input "sql01". This code assist function allows the developer (user) to input the function name (identification information) of the created function without typing all the characters of the function name of the created function on the keyboard, which contributes to reducing the number of operations. In addition, if the function name matches the beginning of the function name of an already created created function, the full name is displayed in the code assist field 911, and if there is no match (i.e., if there is no function starting with that character string), the code assist field 911 is not displayed. Therefore, the developer can input the function name of the created function that he or she created before confirming that it is correct, and can prevent inputting a function name mistake. Note that if there are multiple created functions that match the beginning of the function name, multiple options are displayed in the code assist field 911. In addition, the function names of the created functions displayed in the code assist field 911 are functions created for the specified UI part (UI part 901 in the illustrated example) that is the target of the action board 910, and created functions created for other UI parts are not displayed. Therefore, it is possible to prevent the mistake of writing the function name of a created function created for another UI part, which does not exist as a created function for the specified UI part, in the action board 910.

また、図10(c)に示す通り、アクションボード910とともに、関数一覧920には、開発者が作成した創作関数の関数923~925のそれぞれについて、関数の種別(文字列の前のアイコン)と、関数の名称が表示される。従って開発者ユーザーは、アクションボード910にアクションのコード(JavaScriptでの文字列)を入力(記述)しながら、どうような種別のどのような名称の創作関数を作成済みであるかを確認することができる。そのため、アクションボード910に記述できる有効な創作関数の確認や管理の手間(例えば、手元にメモしておく、別の画面を開いて確認する、といった手間)を削減することができる。また、関数名の入力ミスの防止にも寄与する。関数一覧920に表示される関数は、アクションボード910の対象となっている指定UI部品(図示の例ではUI部品901)について作成された関数であって、他のUI部品について作成された創作関数については表示されない。従って、誤って他のUI部品について作成した創作関数の関数名であって、指定UI部品の創作関数としては存在しない関数名をアクションボード910に記述してしまうミスも防止することができる。また、創作関数は、指定UI部品のアクションの定義の際にのみ有効であり、他のUI部品のアクションの定義には影響を及ぼさない。従って、指定UI部品について作成する創作関数の関数名が、他のUI部品について作成された創作関数と同じ関数名となった場合、アクションボード910にその関数名が記述されたとしても指定UI部品について設定された関数設定のみが反映され、他のUI部品について設定された関数設定は反映されない。従って、他のUI部品について作成済みの創作関数の関数名と同じ関数名を用いたとしてもエラーとなることはない。そのため、ユーザーは、他のUI部品について作成済みの創作関数との関数名の重複を気にすることなく創作関数の関数名を決め、アクションボード910に入力することができる。すなわち、アプリケーションの開発全体において多数の創作関数を作成することになるが、それらは指定UI部品に関連付けて自動的に管理・整理され、コードアシスト欄911や関数一覧920に表示されるため、開発者による多数の創作関数の管理が非常に容易になる。従って関数名の確認に係る手間・時間を削減することができる。また、関数名の入力ミスも抑制できる。そのため、関数名の入力ミスを犯した場合のデバック作業(バグ取りの作業)も抑制することができる。以て、ソフトウェア開発(アプリケーション開発)に掛かる負荷・工数を削減し、より効率的なソフトウェア開発(アプリケーション開発)を行うことができる。 As shown in FIG. 10C, the function list 920 displays the type of function (icon before the character string) and the name of each of the functions 923 to 925 of the created functions created by the developer together with the action board 910. Therefore, the developer user can check what type and name of the created function has been created while inputting (writing) the action code (character string in JavaScript) in the action board 910. This reduces the effort of checking and managing valid created functions that can be written in the action board 910 (for example, the effort of making a note of them at hand or opening another screen to check). It also contributes to preventing input errors in function names. The functions displayed in the function list 920 are functions created for the specified UI part (UI part 901 in the illustrated example) that is the target of the action board 910, and created functions created for other UI parts are not displayed. Therefore, it is possible to prevent a mistake of writing a function name of a creation function created for another UI part, which does not exist as a creation function of the specified UI part, on the action board 910. In addition, the creation function is only valid when defining the action of the specified UI part, and does not affect the definition of the action of the other UI parts. Therefore, if the function name of the creation function created for the specified UI part is the same as the creation function created for the other UI part, even if the function name is written on the action board 910, only the function setting set for the specified UI part is reflected, and the function setting set for the other UI parts is not reflected. Therefore, no error occurs even if the same function name as the function name of the creation function already created for the other UI part is used. Therefore, the user can decide the function name of the creation function and input it to the action board 910 without worrying about duplication of the function name with the creation function already created for the other UI part. That is, many original functions will be created during the entire development of an application, but these are automatically managed and organized in association with designated UI components and displayed in the code assist field 911 and function list 920, making it extremely easy for developers to manage many original functions. This reduces the effort and time required to check function names. It also reduces input errors in function names. This also reduces the amount of debugging work (debug removal work) required when an input error occurs in a function name. This reduces the load and man-hours required for software development (application development), enabling more efficient software development (application development).

図10(d)は、アクションボード910にアクションのコードをプログラミング言語で入力し終えた場合の表示例である。図示の例では、3行目の点線960で示した部分に、創作関数である「rest01」(関数一覧920の関数923)を用いている。図10(d)のアクションボード910に図示したコードの文字列では、創作関数であるrest01の詳細は定義されていない。また、開発者がrest01の設定をREST関数設定画面940で行った際にも、プログラミング言語でのrest01の詳細の定義は行っていない。この状態のアクションの定義を含む定義情報を開発環境300にアップロードして保存した場合、開発環境300が、後述する図33(a)または図35(a)の保存処理において、実行環境用プログラムとして、アップロードされた定義情報から、関数の設定内容とアクションボード910に記述された文字列に基づき、プログラミング言語での関数の定義を含むプログラミング言語でのソースコードを作成する。このように、開発環境300は、プログラミング言語で記述された創作関数の識別情報(関数名)が含まれる文字列を取得すると、関数設定画面で設定された情報に基づいて、創作関数の機能を含む文字列(アクションボードに記載されたアクション)で示される機能(アクション)を実行可能とする制御を行う。 Figure 10(d) is a display example when the action code has been entered in a programming language into the action board 910. In the illustrated example, the part indicated by the dotted line 960 on the third line uses the created function "rest01" (function 923 in the function list 920). In the character string of the code illustrated in the action board 910 of Figure 10(d), the details of the created function rest01 are not defined. Also, when the developer sets rest01 on the REST function setting screen 940, the details of rest01 are not defined in the programming language. When definition information including the action definition in this state is uploaded and saved to the development environment 300, the development environment 300 creates source code in a programming language including the function definition in the programming language from the uploaded definition information as a program for the execution environment, based on the function setting contents and the character string described in the action board 910 in the saving process of Figure 33(a) or Figure 35(a) described later. In this way, when the development environment 300 acquires a character string containing identification information (function name) of a created function written in a programming language, it performs control to enable execution of the function (action) indicated by the character string containing the function of the created function (action written on the action board) based on the information set on the function setting screen.

図11に、図10(d)のアクションボード910に記載された文字列と、REST関数設定画面940で設定されたrest01の設定内容に基づいて、開発環境300が生成するプログラミング言語でのソースコードの例を示す。なお、図示の例において、左端に記載した1~75の数字は、行数を示すために図示したものであって、ソースコードの一部ではない。図11の例は、プログラミング言語でのrest01の詳細の定義を含む75行のソースコードである。しかし開発者自身は75行もの入力をする必要はない。REST関数設定画面940での設定を行い、図10(d)のアクションボード910に図示した分量(7行)の文字列を記述すれば、図11に示すソースコードの内容を定義できる。すなわち、ローコードで効率的な開発を行うことができる。 Figure 11 shows an example of source code in a programming language generated by the development environment 300 based on the character string written on the action board 910 in Figure 10 (d) and the setting contents of rest01 set on the REST function setting screen 940. In the illustrated example, the numbers 1 to 75 written on the left side are illustrated to indicate the number of lines and are not part of the source code. The example in Figure 11 is a 75-line source code including a detailed definition of rest01 in a programming language. However, the developer himself does not need to enter 75 lines. By setting on the REST function setting screen 940 and writing the amount of character string (7 lines) shown in the action board 910 in Figure 10 (d), the contents of the source code shown in Figure 11 can be defined. In other words, efficient development can be performed with low code.

図8に、アクションボード処理のフローチャートを示す。この処理は、図7のS715で前述したアクションボード処理の詳細フローチャートであり、図9(b)~(d)、図10(a)~(d)の表示例を用いて説明した動作となるように制御する処理である。 Figure 8 shows a flowchart of the action board process. This process is a detailed flowchart of the action board process described above in S715 of Figure 7, and is a process that controls the operation to be as explained using the display examples in Figures 9(b)-(d) and 10(a)-(d).

S801では、開発者用端末100は、ディスプレイ105にアクションボードを表示する。指定UI部品に対してアクションが定義されていなければ、図9(b)で説明したような空白のアクションボート910を含む画面を表示する。指定UI部品に対して既にアクションが定義されていれば、図10(d)で説明したような、アクションの文字列が入力されたアクションボード910を含む画面を表示する。 In S801, the developer terminal 100 displays an action board on the display 105. If no action has been defined for the specified UI part, a screen including a blank action board 910 as described in FIG. 9(b) is displayed. If an action has already been defined for the specified UI part, a screen including an action board 910 with an action string entered as described in FIG. 10(d) is displayed.

S802では、開発者用端末100は、アクションボード910に対してアクションを記述する操作(記述操作)があったか否かを判定する。アクションを記述する操作とは、例えば、アクションボード910を選択した状態で操作部106に含まれるキーボードに対する操作や、タッチパネルに表示されるソフトキーボードをタッチする操作によって行われるテキスト入力操作である。アクションを記述する操作があった場合にはS803に進み、そうでない場合にはS810に進む。 In S802, the developer terminal 100 determines whether or not an operation (description operation) has been performed to describe an action on the action board 910. An operation to describe an action is, for example, a text input operation performed by operating a keyboard included in the operation unit 106 while the action board 910 is selected, or by touching a soft keyboard displayed on a touch panel. If an operation to describe an action has been performed, the process proceeds to S803; if not, the process proceeds to S810.

S803では、開発者用端末100は、アクションを記述する操作によるアクションの入力操作を受け付け、アクションボード910に、入力された文字を表示する。 In S803, the developer terminal 100 accepts the action input operation by the action description operation, and displays the input characters on the action board 910.

S804では、開発者用端末100は、S803で入力された文字と、その前までに入力された文字とによる文字列が、創作関数の関数名に前方一致する(すなわち、一部一致する)か否かを判定する。前方一致する場合にはS805に進み、そうでない場合にはS808に進む。 In S804, the developer terminal 100 determines whether the character string consisting of the characters entered in S803 and the characters entered up to that point matches (i.e., partially matches) the function name of the created function. If there is a match, the process proceeds to S805, and if not, the process proceeds to S808.

S805では、開発者用端末100は、S804で一致すると判定された創作関数の関数名をコードアシスト欄に選択肢として表示する。これによって、図10(b)で説明したようにコードアシスト欄911が表示される。なお、コードアシスト欄911には、創作関数だけでなく、プログラミング言語で一般的に利用可能な関数名などについても、入力された文字列に前方一致するものを表示しても良い。 In S805, the developer terminal 100 displays the function names of the created functions determined to match in S804 as options in the code assist field. This causes the code assist field 911 to be displayed as described in FIG. 10(b). Note that the code assist field 911 may display not only created functions, but also function names that are generally available in programming languages and the like that match the input string.

S806では、開発者用端末100は、コードアシスト欄に表示された選択肢のいずれかが選択されたか否かを判定する。選択肢のいずれかが選択された場合にはS807に進み、選択された選択肢の関数名をコードアシスト欄911に表示する。例えば、図10(b)の状態からコードアシスト欄911の選択肢が選択されたことに応じて、アクションボード910の5行目に示すように、「sql01」と入力して表示する。選択肢のいずれも選択されなかった場合には処理はS808に進む。 In S806, the developer terminal 100 determines whether any of the options displayed in the code assist field has been selected. If any of the options has been selected, the process proceeds to S807, where the function name of the selected option is displayed in the code assist field 911. For example, in response to the selection of an option in the code assist field 911 from the state shown in FIG. 10(b), "sql01" is entered and displayed, as shown on the fifth line of the action board 910. If none of the options has been selected, the process proceeds to S808.

S808では、開発者用端末100は、アクションを記述する操作が継続して行われたか否かを判定する。アクションを記述する操作が継続して行われた場合にはS803に進み、そうでない場合にはS802に進む。 In S808, the developer terminal 100 determines whether the operation of describing the action is being performed continuously. If the operation of describing the action is being performed continuously, the process proceeds to S803, and if not, the process proceeds to S802.

S810では、開発者用端末100は、関数を追加する指示をする操作が行われたか否かを判定する。具体的には、関数追加ボタン921が押下されたか否かを判定する。関数追加ボタン921が押下された場合にはS811に進み、そうでない場合にはS820に進む。 In S810, the developer terminal 100 determines whether an operation has been performed to instruct the user to add a function. Specifically, it determines whether the Add Function button 921 has been pressed. If the Add Function button 921 has been pressed, the process proceeds to S811; if not, the process proceeds to S820.

S811では。開発者用端末100は、創作関数を追加するための追加ダイアログ930を表示し、追加ダイアログ930に対する入力を受け付ける。追加ダイアログで入力を受け付ける内容は図9(c)を用いて前述したとおりである。追加ダイアログへの入力が行われ、SAVEボタン933が押下されるとS812に進む。 In S811, the developer terminal 100 displays the addition dialog 930 for adding a creation function, and accepts input to the addition dialog 930. The content of the input accepted in the addition dialog is as described above with reference to FIG. 9(c). Once the input is made to the addition dialog and the SAVE button 933 is pressed, the process proceeds to S812.

S812では、開発者用端末100は、サブメニュー領域の関数一覧920に、追加ダイアログの関数名入力欄932に入力された関数名を追加で、未完マーク929を付した状態で表示する。 In S812, the developer terminal 100 displays the function name entered in the function name input field 932 of the addition dialog in the function list 920 in the submenu area with an incomplete mark 929 added.

S813では、開発者用端末100は、追加ダイアログの種別選択欄931で選択された種別がスクリプトであるか否かを判定する。スクリプトである場合にはS814に進み、そうでない場合にはS815に進む。S814では、開発者用端末100は、スクリプト関数の設定画面(不図示)を表示し、開発者ユーザーからの設定操作を受け付ける。 In S813, the developer terminal 100 determines whether the type selected in the type selection field 931 of the addition dialog is a script. If it is a script, the process proceeds to S814, and if not, the process proceeds to S815. In S814, the developer terminal 100 displays a script function setting screen (not shown) and accepts setting operations from the developer user.

S815では、開発者用端末100は、追加ダイアログの種別選択欄931で選択された種別がSQLであるか否かを判定する。SQLである場合にはS816に進み、そうでない場合(すなわち、追加ダイアログの種別選択欄931で選択された種別がRESTである場合)にはS817に進む。S816では、開発者用端末100は、SQL関数設定画面を表示し、開発者ユーザーからの設定操作を受け付ける。SQL関数設定画面で受け付ける設定内容は図10(a)を用いて前述したとおりである。 In S815, the developer terminal 100 determines whether the type selected in the type selection field 931 of the addition dialog is SQL. If it is SQL, the process proceeds to S816, and if it is not (i.e., if the type selected in the type selection field 931 of the addition dialog is REST), the process proceeds to S817. In S816, the developer terminal 100 displays an SQL function setting screen and accepts setting operations from the developer user. The setting contents accepted on the SQL function setting screen are as described above with reference to FIG. 10(a).

S817では、開発者用端末100は、REST関数設定画面を表示し、開発者ユーザーからの設定操作を受け付ける。REST関数設定画面で受け付ける設定内容は図9(d)を用いて前述したとおりである。 In S817, the developer terminal 100 displays a REST function setting screen and accepts setting operations from the developer user. The setting contents accepted on the REST function setting screen are as described above with reference to FIG. 9(d).

S818では。開発者用端末100は、それぞれの種別の関数設定画面において、必須項目として予め定められた設定項目への入力が完了したか(設定が完了したか)を判定する。必須項目への入力が完了した場合にはS819に進み、そうでない場合にはS802に進む。 In S818, the developer terminal 100 determines whether input into the setting items that are predetermined as required items on the function setting screen for each type has been completed (whether the settings have been completed). If input into the required items has been completed, the process proceeds to S819, and if not, the process proceeds to S802.

S819では、開発者用端末100は、設定中の創作関数に関して関数一覧920に表示された関数名に対応付けて表示していた未完マークを非表示とする。これによってユーザー(開発者)は、設定中の創作関数が、アクションボード910で使える有効な設定状態であることを認識することができる。 In S819, the developer terminal 100 hides the incomplete mark that was displayed in association with the function name displayed in the function list 920 for the creative function being set. This allows the user (developer) to recognize that the creative function being set is in a valid setting state that can be used on the action board 910.

S820では、開発者用端末100は、関数一覧920に表示されたいずれかの創作関数が選択(押下)されたか否かを判定する。関数一覧920で創作関数が選択された場合には、S813に進み、S814、S816、S817のいずれかで、選択された創作関数の種別に応じた設定画面を、既に設定済みの内容を反映して表示する。ユーザー(開発者)は、設定画面に対して設定内容の変更や追加の設定を行うことができる(すなわち、創作関数の編集を行うことができる)。 In S820, the developer terminal 100 determines whether any of the creation functions displayed in the function list 920 has been selected (pressed). If a creation function has been selected in the function list 920, the process proceeds to S813, and in S814, S816, or S817, a setting screen corresponding to the type of creation function selected is displayed, reflecting the contents that have already been set. The user (developer) can change the settings on the setting screen or add additional settings (i.e., edit the creation function).

S821では、開発者用端末100は、保存の指示操作(例えば保存ボタン915の押下)があったか否かを判定する。保存の指示操作があった場合にはS822に進み、そうでない場合にはS823へ進む。 In S821, the developer terminal 100 determines whether or not a save instruction operation (e.g., pressing the Save button 915) has been performed. If a save instruction operation has been performed, the process proceeds to S822; if not, the process proceeds to S823.

S822では、開発者用端末100は、現在までにアクションボード処理で行われた内容をメモリ102に保持した定義情報に記録するとともに、開発環境300に送信する。 In S822, the developer terminal 100 records the contents performed in the action board processing up to now in the definition information stored in memory 102 and transmits it to the development environment 300.

S823では、開発者用端末100は、関数一覧920に表示された、アクションボード910の表示を指示する選択肢922が押下されたか否かを判定する。選択肢922が押下された場合はS801に進み、指定UI部品のアクションボードを表示する。これによって、関数の設定画面を表示していた場合には、アクションボードの表示に切り替わる。選択肢922が押下されていない場合にはS824へ進む。 In S823, the developer terminal 100 determines whether option 922 displayed in the function list 920, which instructs the display of the action board 910, has been pressed. If option 922 has been pressed, the process proceeds to S801, and the action board of the specified UI component is displayed. As a result, if the function setting screen was displayed, it switches to displaying the action board. If option 922 has not been pressed, the process proceeds to S824.

S824では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS802に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S824, the developer terminal 100 determines whether or not an operation to close the action board (an operation to end the action board processing) has been performed. If an operation to close the action board has not been performed, the process proceeds to S802 and the processing is repeated. If an operation to close the action board has been performed, the action board is hidden, the display switches to the canvas of the selected UI screen, and the process returns to the UI editor processing.

<画面切替処理>
図12に、画面切替処理のフローチャートを示す。この処理は、図5(b)の表示例で前述したメインメニュー領域510に表示された選択肢の選択に応じた処理である。
<Screen switching process>
A flowchart of the screen switching process is shown in Fig. 12. This process corresponds to the selection of the option displayed in the main menu area 510 described above in the display example of Fig. 5(b).

S1201では、開発者用端末100は、アプリ一覧ボタン511が押下されたか否かを判定する。アプリ一覧ボタン511が押下された場合は図3のS315に進み、そうでない場合はS1202に進む。 In S1201, the developer terminal 100 determines whether the application list button 511 has been pressed. If the application list button 511 has been pressed, the process proceeds to S315 in FIG. 3; if not, the process proceeds to S1202.

S1202では、開発者用端末100は、UI画面ボタン512が押下されたか否かを判定する。UI画面ボタン512が押下された場合はS1203に進み、そうでない場合はS1204へ進む。S1203では、図4のUIエディタ処理を行う。 In S1202, the developer terminal 100 determines whether the UI screen button 512 has been pressed. If the UI screen button 512 has been pressed, the process proceeds to S1203; if not, the process proceeds to S1204. In S1203, the UI editor process of FIG. 4 is performed.

S1204では、開発者用端末100は、ワークフローボタン513が押下されたか否かを判定する。ワークフローボタン513が押下されたと判定した場合はS1205に進み、そうでない場合はS1206に進む。 In S1204, the developer terminal 100 determines whether or not the workflow button 513 has been pressed. If it is determined that the workflow button 513 has been pressed, the process proceeds to S1205; otherwise, the process proceeds to S1206.

S1205では、開発者用端末100は、ワークフロー作成処理を行う。ワークフロー作成処理は図16を使って後述する。 In S1205, the developer terminal 100 performs a workflow creation process. The workflow creation process will be described later with reference to FIG. 16.

S1206では、開発者用端末100は、設定ボタン514が押下されたか否かを判定する。設定ボタン514が押下された場合にはS1207に進み、そうでない場合はS1209へ進む。 In S1206, the developer terminal 100 determines whether the setting button 514 has been pressed. If the setting button 514 has been pressed, the process proceeds to S1207; if not, the process proceeds to S1209.

S1207では、開発者用端末100は、アプリ設定画面を表示する。アプリ設定画面は、選択中アプリに関する設定操作を受け付ける画面である。S1208では、開発者用端末100は、アプリ設定画面への設定操作を受け付け、設定に基づいてメモリ102に記録した定義情報を更新する。S1208で受け付け可能な設定には、例えば、表示言語の設定や、PWA(Progressive Web Apps)としての利用を可とするアプリを構築するか否かの設定がある。また、アプリに所属する複数のUI画面のうち、どのUI画面をイニシャルUIとするかの設定がある。イニシャルUIとは、実行環境にデプロイされた構築済みアプリにアクセスした際に最初に表示される画面、あるいは構築済みアプリにアクセスした後にアプリの認証画面において認証OKになった後に最初に表示される画面である。 In S1207, the developer terminal 100 displays an application setting screen. The application setting screen is a screen that accepts setting operations related to the selected application. In S1208, the developer terminal 100 accepts the setting operation on the application setting screen and updates the definition information recorded in the memory 102 based on the setting. Settings that can be accepted in S1208 include, for example, a display language setting and a setting of whether to build an application that can be used as a PWA (Progressive Web Apps). In addition, there is a setting of which UI screen among multiple UI screens belonging to the application is to be the initial UI. The initial UI is the screen that is displayed first when an already-built application deployed in the execution environment is accessed, or the screen that is displayed first after authentication is OK on the application authentication screen after accessing the already-built application.

S1209では、開発者用端末100は、環境一覧ボタン515が押下されたか否かを判定する。環境一覧ボタン515が押下された場合には図3のS311に進み、そうでない場合にはS1210へ進む。 In S1209, the developer terminal 100 determines whether the Environment List button 515 has been pressed. If the Environment List button 515 has been pressed, the process proceeds to S311 in FIG. 3; if not, the process proceeds to S1210.

S1210では、開発者用端末100は、データベースボタン516が押下されたか否かを判定する。データベースボタン516が押下された場合にはS1211に進み、そうでない場合にはS1215へ進む。データべ―スボタン516の押下はデータベースへの接続要求である。 In S1210, the developer terminal 100 determines whether or not the Database button 516 has been pressed. If the Database button 516 has been pressed, the process proceeds to S1211; if not, the process proceeds to S1215. Pressing the Database button 516 is a request to connect to the database.

S1211では、開発者用端末100は、選択中実行環境がマルチテナント実行環境410であるか否かを判定する。マルチテナント実行環境410である場合にはS1213に進み、そうでない場合(シングルテナント実行環境である場合)にはS1212に進む。 In S1211, the developer terminal 100 determines whether the selected execution environment is a multi-tenant execution environment 410. If it is a multi-tenant execution environment 410, the process proceeds to S1213, and if it is not (if it is a single-tenant execution environment), the process proceeds to S1212.

S1212では、開発者用端末100は、開発環境300が選択中実行環境から取得したデータベースの情報を取得する。より詳しくは、開発環境300が、選択中実行環境がマルチテナント実行環境であるかシングルテナント実行環境であるかを判定し、シングルテナント実行環境である場合には、開発環境300が選択中実行環境であるシングルテナント実行環境のDBセット(DBセット457、467、477などのうちいずれか)にアクセスし、データベースに記録されている内容を取得する。そして、開発環境300が選択中実行環境から取得したデータベースの情報を開発者用端末100に送信する。開発者用端末100から、開発環境300を介さずにシングルテナント実行環境にアクセスすることは無い。 In S1212, the developer terminal 100 acquires database information acquired by the development environment 300 from the selected execution environment. More specifically, the development environment 300 determines whether the selected execution environment is a multi-tenant execution environment or a single-tenant execution environment, and if it is a single-tenant execution environment, the development environment 300 accesses the DB set (any of DB sets 457, 467, 477, etc.) of the single-tenant execution environment that is the selected execution environment, and acquires the contents recorded in the database. The development environment 300 then transmits the database information acquired from the selected execution environment to the developer terminal 100. The developer terminal 100 will not access the single-tenant execution environment without going through the development environment 300.

S1213では、開発者用端末100は、ログイン開発者の開発者情報(開発者情報301のうち、ログイン開発者について登録された情報)に記録されたDBインスタンス名を参照する。そして、開発環境300が選択中実行環境であるマルチテナント実行環境410に含まれるDBセット430のうち、ログイン開発者の開発者情報を参照して得たDBインスタンス名が示すDBインスタンスのデータベースに記録されている内容を取得する。そして、開発環境300が選択中実行環境から取得したデータベースの情報を開発者用端末100に送信する。開発者用端末100から、開発環境300を介さずにマルチテナント実行環境410にアクセスすることは無い。 In S1213, the developer terminal 100 references the DB instance name recorded in the developer information of the logged-in developer (information registered for the logged-in developer among the developer information 301). Then, from among the DB sets 430 included in the multi-tenant execution environment 410, which is the currently selected execution environment of the development environment 300, the developer terminal 100 obtains the contents recorded in the database of the DB instance indicated by the DB instance name obtained by reference to the developer information of the logged-in developer. Then, the development environment 300 transmits the database information obtained from the currently selected execution environment to the developer terminal 100. The developer terminal 100 will not access the multi-tenant execution environment 410 without going through the development environment 300.

S1214では、開発者用端末100は、データベースの管理画面を表示し、S1212またはS1213で取得したデータベースの情報を表示する。そして、選択中実行環境のデータベースに関する各種設定や、内容の更新の指示を行うDB管理操作を受け付ける。 In S1214, the developer terminal 100 displays a database management screen and displays the database information acquired in S1212 or S1213. It then accepts DB management operations to specify various settings for the database of the selected execution environment and to instruct updates to the contents.

S1215では、開発者用端末100は、ファイルマネージャーボタン517が押下されたか否かを判定する。ファイルマネージャーボタン517が押下された場合にはS1216に進み、そうでない場合にはS1218に進む。 In S1215, the developer terminal 100 determines whether or not the file manager button 517 has been pressed. If the file manager button 517 has been pressed, the process proceeds to S1216; if not, the process proceeds to S1218.

S1216では、開発者用端末100は、選択中実行環境に保存するファイルを管理するファイル管理画面を表示し、S1217で、選択中実行環境に保存するファイルを管理する操作を受け付ける。例えば、構築されるアプリケーションの画面に表示すべき画像ファイルを選択中実行環境の開発者領域にアップロードして保存することができる。開発者用端末100のローカル保存領域(記録媒体108など)から選択中実行環境に保存すべきファイルが選択され保存の指示がされると、開発者用端末100は、選択されたファイルを開発環境300に送信する。開発環境300は、選択されたファイルを受信すると、選択中実行環境の開発者領域に送信することで、選択中実行環境に保存させる。各種実行環境は、開発環境300からのアクセスだけを受け付ける。そのため、ファイル管理のためには、開発者用端末100から、開発環境300を介して各種実行環境にアクセスする。開発者用端末100から、開発環境300を介さずにマルチテナント実行環境410にアクセスすることは無い。前述のログイン処理で説明した取り、開発者は、開発環境300へは認証を行ってログインする必要がある。従って開発環境300を介してでないと各種実行にアクセスできないようにすることで、開発環境300にログインできない他のユーザーが不正に実行環境にアクセスすることは出来ず、その分、セキュリティが向上する。 In S1216, the developer terminal 100 displays a file management screen for managing files to be saved in the selected execution environment, and in S1217, accepts an operation to manage files to be saved in the selected execution environment. For example, an image file to be displayed on the screen of the application to be constructed can be uploaded and saved in the developer area of the selected execution environment. When a file to be saved in the selected execution environment is selected from the local storage area (such as the recording medium 108) of the developer terminal 100 and an instruction to save is given, the developer terminal 100 transmits the selected file to the development environment 300. When the development environment 300 receives the selected file, it transmits it to the developer area of the selected execution environment to save it in the selected execution environment. The various execution environments only accept access from the development environment 300. Therefore, for file management, the developer terminal 100 accesses the various execution environments via the development environment 300. The developer terminal 100 does not access the multi-tenant execution environment 410 without going through the development environment 300. As explained in the login process above, a developer must authenticate and log in to development environment 300. Therefore, by restricting access to various executions to those other than through development environment 300, other users who cannot log in to development environment 300 cannot illegally access the execution environment, thereby improving security.

また、開発者ユーザーは開発環境300にログインするための認証に掛かる操作だけを行えばよく、実行環境毎にログインするための認証にかかる操作をする必要がない。そのため、操作手数の増大を抑制することができる。 In addition, the developer user only needs to perform operations related to authentication to log in to the development environment 300, and does not need to perform operations related to authentication to log in to each execution environment. This prevents an increase in the number of operations.

S1218では、開発者用端末100は、ユーザー管理ボタン518が押下されたか否かを判定する。ユーザー管理ボタン518が押下されたと判定した場合はS1219に進み、そうでない場合はS1220に進む。 In S1218, the developer terminal 100 determines whether the user management button 518 has been pressed. If it is determined that the user management button 518 has been pressed, the process proceeds to S1219; otherwise, the process proceeds to S1220.

S1219では、開発者用端末100は、ユーザー情報表示処理を行う。ユーザー情報表示処理は、選択中実行環境に構築されるアプリケーションにログイン可能なアプリユーザー(開発者とは別途管理される情報)の情報であるユーザー情報(図1に図示した各実行環境におけるユーザー情報411、451、461、471など)を表示し、開発者からの管理操作を受け付ける処理である。ユーザー情報表示処理については図14を用いて後述する。 In S1219, the developer terminal 100 performs a user information display process. The user information display process displays user information (such as user information 411, 451, 461, 471 in each execution environment shown in FIG. 1) that is information about an application user (information managed separately from the developer) who can log in to an application built in the selected execution environment, and accepts management operations from the developer. The user information display process will be described later with reference to FIG. 14.

S1220では、開発者用端末100は、スナップショットボタン519が押下されたか否かを判定する。スナップショットボタン519が押下された場合にはS1221に進んでスナップ処理を行い、そうでない場合にはS1222に進む。 In S1220, the developer terminal 100 determines whether the snapshot button 519 has been pressed. If the snapshot button 519 has been pressed, the process proceeds to S1221 to perform the snap process, and if not, the process proceeds to S1222.

S1222では、開発者用端末100は、終了操作が行われたか否かを判定する。終了操作が行われていない場合にはS1201に進んで処理を繰り返し、終了操作があった場合には画面切替処理を終了する。 In S1222, the developer terminal 100 determines whether or not an end operation has been performed. If an end operation has not been performed, the process proceeds to S1201 and the process is repeated, and if an end operation has been performed, the screen switching process ends.

<ユーザー情報表示処理>
図14(a)に、開発環境300に保持している開発者情報301の具体例を示す。開発者情報301には、図示の各行の通り、開発者毎のアカウント情報として次の情報が開発者毎に関連付けて記録されている。開発者のアカウントID(開発者ID)となるメールアドレス(ユーザーネーム)、パスワード、氏、名、アクセス可能な実行環境ID、Verify、マルチテナント実行環境でのアクセス可能DBインスタンス名。アクセス可能な実行環境IDは、本実施形態ではクラウドサービスのアカウントIDであるものとする。1人の開発者が複数の実行環境にアクセス可能である場合、アクセス可能な実行環境IDには、複数の実行環境IDがカンマで区切って連続的に記載された文字列が記録される。Verifyは有効なアカウントであうかどうかを示す情報である。なお、1つのアカウントに関連付けて記録する情報は、図14(a)に示す情報以外にあっても良い。
<User information display process>
FIG. 14A shows a specific example of developer information 301 held in the development environment 300. In the developer information 301, the following information is recorded in association with each developer as account information for each developer, as shown in each row in the figure. An email address (user name) that is the developer's account ID (developer ID), a password, a last name, a first name, an accessible execution environment ID, Verify, and an accessible DB instance name in the multi-tenant execution environment. In this embodiment, the accessible execution environment ID is an account ID of a cloud service. When one developer can access multiple execution environments, a character string in which multiple execution environment IDs are consecutively written, separated by commas, is recorded in the accessible execution environment ID. Verify is information indicating whether the account is valid. Note that information recorded in association with one account may be other than the information shown in FIG. 14A.

図14(b)に、マルチテナント実行環境410に保持しているユーザー情報411の具体例を示す。ユーザー情報411には、図示の各行の通り、アプリのユーザー毎のアカウント情報として次の情報がアプリユーザー毎に関連付けて記録されている。アプリのユーザー毎のアカウント情報は、アプリユーザーのアカウントIDとなるメールアドレス(ユーザーネーム)、パスワード、氏、名、Eメールの承認済みであるか否かの情報、オーナーIDを含む。マルチテナント実行環境には、複数の開発者をオーナーとする複数のアプリケーションが混在してデプロイされている。そのため、アプリの各ユーザーがどの開発者(オーナー)の作ったアプリのユーザーであるかを識別するために、オーナーIDとして開発者IDも記録されている。なお、1つのアカウントに関連付けて記録する情報は、図14(b)に示す情報以外にあっても良い。例えば、生成日時、更新日時などが記録されていてもよい。 FIG. 14B shows a specific example of user information 411 stored in the multi-tenant execution environment 410. In the user information 411, the following information is recorded in association with each app user as account information for each app user, as shown in each row in the figure. The account information for each app user includes an email address (user name) that serves as the app user's account ID, a password, a last name, a first name, information on whether the email has been approved, and an owner ID. In the multi-tenant execution environment, multiple applications owned by multiple developers are deployed together. Therefore, in order to identify which developer (owner) created the app for each app user, a developer ID is also recorded as an owner ID. Note that information recorded in association with one account may be other than the information shown in FIG. 14B. For example, the creation date and time, the update date and time, etc. may be recorded.

図14(c)に、シングルテナント実行環境に保持しているユーザー情報(ユーザー情報451、461、471など)の具体例を示す。シングルテナント実行環境のユーザー情報には、図14(c1)に示すユーザー別情報と、図14(c2)に示すグループ情報の2種類が記録される。 Figure 14 (c) shows a specific example of user information (user information 451, 461, 471, etc.) stored in a single tenant execution environment. Two types of user information are recorded in the single tenant execution environment: user-specific information shown in Figure 14 (c1) and group information shown in Figure 14 (c2).

図14(c1)に示すユーザー別情報には、図示の各行の通り、アプリのユーザー毎のアカウント情報として次の情報がアプリユーザー毎に関連付けて記録されている。アプリのユーザー毎のアカウント情報は、アプリユーザーのアカウントIDとなるメールアドレス(ユーザーネーム)、パスワード、氏、名、Eメールの承認済みであるか否かの情報を含む。一方、シングルテナント実行環境では、複数の開発者をオーナーとする複数のアプリケーションが混在することは無いため、オーナーIDは記録されない。なお、1つのアカウントに関連付けて記録する情報は、図14(c1)に示す情報以外にあっても良い。例えば、生成日時、更新日時などが記録されていてもよい。 In the user-specific information shown in FIG. 14 (c1), the following information is recorded in association with each app user as account information for each app user, as shown in each row in the figure. The account information for each app user includes an email address (user name) that serves as the app user's account ID, a password, a last name, a first name, and information on whether the email has been approved. On the other hand, in a single-tenant execution environment, multiple applications owned by multiple developers are not mixed, so an owner ID is not recorded. Note that information recorded in association with one account may be other than the information shown in FIG. 14 (c1). For example, the creation date and time, the update date and time, etc. may be recorded.

図14(c2)に示すグループ情報には、図示の各行の通り、複数のグループIDのそれぞれに対して、1人以上の所属ユーザーのユーザーネームが関連付けて記録されている。 In the group information shown in FIG. 14(c2), the usernames of one or more users are associated with each of a number of group IDs, as shown in each row.

図13(a)に、開発者用端末100におけるユーザー情報表示処理のフローチャートを示す。この処理は、前述した図12のS1218の詳細フローチャートである。 Figure 13 (a) shows a flowchart of the user information display process on the developer terminal 100. This process is a detailed flowchart of S1218 in Figure 12 described above.

S130では、開発者用端末100は、開発環境300のユーザー情報取得指示(選択中実行環境のユーザー情報の取得を指示する旨の情報)を送信する。 At S130, the developer terminal 100 sends an instruction to obtain user information for the development environment 300 (information instructing the user to obtain user information for the selected execution environment).

S1302では、開発者用端末100は、S1301で送信したユーザー情報取得指示に応じた情報であって、開発環境300から送信されたユーザー情報を受信したか否かを判定する。ユーザー情報を受信していない場合にはS1302でユーザー情報の受信を待ち、ユーザー情報を受信した場合にはS1303に進む。取得されるユーザー情報は、選択中実行環境がマルチテナント実行環境であれば図14(b)に示したような情報であり、選択中実行環境がシングルテナント実行環境であれば図14(c1)、図14(c2)に示したような情報である。 In S1302, the developer terminal 100 determines whether or not it has received user information sent from the development environment 300 in response to the user information acquisition instruction sent in S1301. If user information has not been received, it waits for reception of user information in S1302, and if user information has been received, it proceeds to S1303. The acquired user information is information such as that shown in FIG. 14(b) if the selected execution environment is a multi-tenant execution environment, and is information such as that shown in FIG. 14(c1) or FIG. 14(c2) if the selected execution environment is a single-tenant execution environment.

S1303では、開発者用端末100は、S1302で受信したユーザー情報に基づいて、ディスプレイ105にユーザー情報を表示する。図15に、S1303で表示される、開発者用端末100におけるユーザー情報の表示例を示す。図15において、前述した図5(b)の表示例と同じ表示項目については同じ符号を付して説明を省略する。表示アイテム1501は、図14(c1)に示すユーザー別情報に基づいた表示を指示するための指示アイテムである。表示アイテム1502は、図14(c2)に示すグループ情報に基づいた表示を指示するための指示アイテムである。表示アイテム1501、1502はいずれかを切り替えて選択可能である。また、選択中実行環境がマルチテナント実行環境であった場合には表示アイテム1501、1502は表示されず、グループ情報への表示へは切り替えられないようになっている。グループ情報1505は、S1302で受信したユーザー情報(図示の例では、図14(c1)に示したユーザー別情報に基づいてユーザー情報を表示した例である。グループ情報1505において、Username、Email Verifiedの列はそれぞれ、図14(c1)に示したユーザー別情報におけるメールアドレス(ユーザーネーム)、Eメールの承認済みであるか否かの列の情報に対応する。Deleteの列には、各行に、その行のユーザーアカウントを削除する指示を受け付けるボタンアイコンが表示される。ユーザー追加ボタン1503は、グループ情報1505に1行追加して新たなアプリユーザーの情報の登録を指示する操作アイコンである。保存ボタン1504は図15の画面で編集された内容のグループ情報1505を、選択中実行環境へ保存する指示を行うための操作アイコンである。 In S1303, the developer terminal 100 displays user information on the display 105 based on the user information received in S1302. FIG. 15 shows an example of the display of user information on the developer terminal 100 displayed in S1303. In FIG. 15, the same display items as those in the display example of FIG. 5(b) described above are given the same reference numerals and the description is omitted. Display item 1501 is an instruction item for instructing a display based on the user-specific information shown in FIG. 14(c1). Display item 1502 is an instruction item for instructing a display based on the group information shown in FIG. 14(c2). Either of the display items 1501 and 1502 can be selected by switching. In addition, if the selected execution environment is a multi-tenant execution environment, display items 1501 and 1502 are not displayed, and it is not possible to switch to displaying group information. Group information 1505 is an example of user information displayed based on the user information received in S1302 (in the illustrated example, the user-specific information shown in FIG. 14(c1). In group information 1505, the Username and Email Verified columns correspond to the information in the email address (username) and email verified columns in the user-specific information shown in FIG. 14(c1), respectively. In the Delete column, a button icon is displayed in each row to receive an instruction to delete the user account of that row. Add user button 1503 is an operation icon for adding a row to group information 1505 and registering information of a new application user. Save button 1504 is an operation icon for issuing an instruction to save group information 1505, the contents of which have been edited on the screen of FIG. 15, in the selected execution environment.

S1304では、開発者用端末100は、S1303で表示したユーザー情報の編集操作を受け付ける。例えば、ユーザー追加ボタン1503の押下によるユーザーアカウントの追加や、Deleteの列に表示されたボタンアイコンの押下によるユーザーカウントの削除、キーボードを操作しての編集可能項目に対する内容の編集などである。 In S1304, the developer terminal 100 accepts an editing operation of the user information displayed in S1303. For example, a user account can be added by pressing the Add User button 1503, a user account can be deleted by pressing the button icon displayed in the Delete column, and the content of editable items can be edited by operating the keyboard.

S1305では、開発者用端末100は、保存ボタン1504が押下されたか否かを判定する。保存ボタン1504が押下された場合はS1306に進み、そうでない場合にはS1307へ進む。 In S1305, the developer terminal 100 determines whether the Save button 1504 has been pressed. If the Save button 1504 has been pressed, the process proceeds to S1306; if not, the process proceeds to S1307.

S1306では、開発者用端末100は、開発環境300に対して、S1304で受け付けた編集操作を反映した内容でのユーザー情報の更新指示を送信する。 In S1306, the developer terminal 100 sends an instruction to the development environment 300 to update the user information to reflect the editing operation received in S1304.

S1307では、開発者用端末100は、実行環境変更操作があったか否かを判定する。実行環境変更操作があった場合(選択中実行環境ボックス501に対する操作があった場合)にはS1308に進み、そうでない場合にはS1309に進む。 In S1307, the developer terminal 100 determines whether an execution environment change operation has been performed. If an execution environment change operation has been performed (if an operation has been performed on the selected execution environment box 501), the process proceeds to S1308; if not, the process proceeds to S1309.

S1308では、開発者用端末100は、変更後の選択中実行環境をメモリ102に記録するとともに、開発環境300に送信する。選択中実行環境が変わると、表示すべき編集対象のユーザー情報も変わるので、S1301に戻って再度処理を行う。 In S1308, the developer terminal 100 records the changed selected execution environment in the memory 102 and transmits it to the development environment 300. When the selected execution environment changes, the user information to be displayed for editing also changes, so the process returns to S1301 and repeats the process.

S1309では、開発者用端末100は、メインメニュー領域510に表示されたいずれかの選択肢を選択する操作である、画面切替操作があったか否かを判定する。画面切替操作が無い場合にはS1304に戻り、画面切替操作があった場合にはユーザー情報表示処理を終了して前述した画面切替処理へ進む。 In S1309, the developer terminal 100 determines whether or not a screen switching operation has been performed, which is an operation to select one of the options displayed in the main menu area 510. If there has been no screen switching operation, the process returns to S1304, and if there has been a screen switching operation, the user information display process is terminated and the process proceeds to the screen switching process described above.

図13(b)に、図13(a)のユーザー情報表示処理に応答した処理である、開発環境300におけるユーザー情報取得処理のフローチャートを示す。 Figure 13 (b) shows a flowchart of the user information acquisition process in the development environment 300, which is a process in response to the user information display process in Figure 13 (a).

S1311では、開発環境300は、S1301で開発者用端末100から送信されたユーザー情報取得指示を受信したか否かを判定する。ユーザー情報取得指示を受信した場合はS1312に進み、そうでない場合にはS1316に進む。 In S1311, the development environment 300 determines whether or not the user information acquisition instruction sent from the developer terminal 100 in S1301 has been received. If the user information acquisition instruction has been received, the process proceeds to S1312; if not, the process proceeds to S1316.

S1312では、開発環境300は、選択中実行環境からアクセス先情報(接続先情報)を取得する。ここで取得するアクセス先情報は、選択中実行環境が図1のマルチテナント実行環境410であればアクセス先情報421であり、選択中実行環境が図1のシングルテナント実行環境であれば、アクセス先情報456b、466b、476b…などのうち、選択中実行環境のものである。より詳しくは、開発環境300は、選択中実行環境として、開発者情報301のうちログイン中の開発者のアカウント情報から選択中実行環境(特定環境)の実行環境IDを取得してメモリ304に記憶している。その選択中実行環境のうち、所定のパス(実行環境IDがわかれば確定するパス)に記録されたファイルにアクセスし、アクセス先情報としてそのファイルに記憶されたアクセス先のURLを取得する。所定のパスは例えば、所定の領域(フォルダ、バケット、ディレクトリ)の名称と、所定のファイル名からなる。所定の領域の名称は例えば、「固定の文字列+実行環境ID」である。所定のファイル名は例えば、全実行環境で共通の予め定められた共通ファイル名である。この場合、所定のパスは、「固定の文字列+実行環境ID/共通ファイル名.json」となる。すなわち、実行環境IDがわかれば確定する所定の領域にある所定のファイル(アクセス先情報ファイル)を取得し、そのファイルの中からアクセス先情報を取得し、メモリ304に記録する。アクセス先情報のURLは、当該実行環境中のアドレスを示しており、実行環境に保存されたユーザー情報の取得、更新を要求(リクエスト)する要求先となるURLである。このURLにリクエストしなければ、実行環境に保存されたユーザー情報の取得、更新はできない。このように、実行環境IDがわからなければ、ユーザー情報の取得・更新のためのアクセス先情報は取得できない。実行環境IDは、開発者が開発環境300に認証処理を行った上でログインしないと得られない情報である。また、開発環境300にログインできる開発者が自身のアクセス可能な実行環境IDしか取得することはできない。従って開発環境300にログインできない人物や、開発環境300にログインできてもアクセス可能実行環境が異なる人物が不正に実行環境にアクセスしてユーザー情報が漏洩することは抑制される。すなわち、セキュリティを向上させている。 In S1312, the development environment 300 acquires access destination information (connection destination information) from the selected execution environment. If the selected execution environment is the multi-tenant execution environment 410 in FIG. 1, the acquired access destination information is the access destination information 421. If the selected execution environment is the single-tenant execution environment in FIG. 1, the acquired access destination information is the access destination information 456b, 466b, 476b, etc., of the selected execution environment. More specifically, the development environment 300 acquires the execution environment ID of the selected execution environment (specific environment) from the account information of the logged-in developer in the developer information 301 as the selected execution environment, and stores it in the memory 304. In the selected execution environment, a file recorded in a specific path (a path that is determined when the execution environment ID is known) is accessed, and the URL of the access destination stored in the file is acquired as the access destination information. The specific path is, for example, the name of a specific area (folder, bucket, directory) and a specific file name. The name of the specific area is, for example, "fixed character string + execution environment ID". The predetermined file name is, for example, a common file name that is determined in advance for all execution environments. In this case, the predetermined path is "fixed character string + execution environment ID / common file name.json". That is, if the execution environment ID is known, a predetermined file (access destination information file) in a predetermined area that is determined is obtained, and the access destination information is obtained from the file and recorded in the memory 304. The URL of the access destination information indicates an address in the execution environment, and is a URL that is a request destination for requesting acquisition and updating of user information stored in the execution environment. If a request is not made to this URL, the user information stored in the execution environment cannot be acquired and updated. In this way, if the execution environment ID is not known, the access destination information for acquiring and updating user information cannot be acquired. The execution environment ID is information that cannot be obtained unless the developer logs in after performing authentication processing to the development environment 300. In addition, a developer who can log in to the development environment 300 can only acquire the execution environment ID that he or she can access. This prevents people who cannot log in to the development environment 300, or people who can log in to the development environment 300 but have a different accessible execution environment, from illegally accessing the execution environment and leaking user information. In other words, security is improved.

S1313では、開発環境300は、S1312で取得したアクセス先情報が示すアクセス先に、ユーザー情報取得要求(ユーザー情報を開発環境300へ送信する処理の実行要求)と、開発者情報を送信する(送信制御)。アクセス先に送信する開発者情報は、開発者情報301から、暗号化されたログイン中の開発者のアカウント情報を取得する。取得するアカウント情報は、図14(a)に示した開発者情報301の表のうち、ログイン中の開発者の1行分の情報である。すなわち、メールアドレス、パスワード、氏、名、アクセス可能な実行環境IDの情報を含む。これらが暗号化され1つのデータ列となった情報を取得する。この暗号化された情報だけが漏洩したとしても、暗号化されているため、メールアドレス、パスワード、氏、名、アクセス可能な実行環境IDは漏洩しない。 In S1313, the development environment 300 transmits a user information acquisition request (a request to execute a process to send user information to the development environment 300) and developer information to the access destination indicated by the access destination information acquired in S1312 (transmission control). The developer information to be sent to the access destination is obtained by acquiring encrypted account information of the currently logged-in developer from the developer information 301. The acquired account information is one row of information for the currently logged-in developer in the table of developer information 301 shown in FIG. 14(a). In other words, it includes information on the email address, password, last name, first name, and accessible execution environment ID. This information is encrypted and becomes a single data string, and is acquired. Even if only this encrypted information is leaked, the email address, password, last name, first name, and accessible execution environment ID are not leaked because it is encrypted.

S1314では、開発環境300は、選択中実行環境から、S1313で送信したユーザー情報取得要求に応じたユーザー情報を受信したか否かを判定する。このユーザー情報は、後述するS1325またはS1326で実行環境から送信されるものである。ユーザー情報を受信した場合はS1315に進み、そうでない場合にはS1314でユーザー情報の受信を待つ。 In S1314, the development environment 300 determines whether or not user information has been received from the selected execution environment in response to the user information acquisition request sent in S1313. This user information is sent from the execution environment in S1325 or S1326, which will be described later. If user information has been received, the process proceeds to S1315; if not, the process waits for reception of user information in S1314.

S1315では、開発環境300は、S1314で受信したユーザー情報を開発者用端末100に送信する。ここで送信したユーザー情報が、前述したS1302で受信される。 In S1315, the development environment 300 transmits the user information received in S1314 to the developer terminal 100. The user information transmitted here is received in S1302 described above.

S1316では、開発環境300は、開発者用端末100からユーザー情報更新指示を受信したか否かを判定する。ここで受信するユーザー情報更新指示は、前述したS1306で開発者用端末100から送信されるものである。ユーザー情報更新指示を受信した場合はS1317に進み、そうでない場合は1318に進む。 In S1316, the development environment 300 determines whether or not a user information update instruction has been received from the developer terminal 100. The user information update instruction received here is the one sent from the developer terminal 100 in S1306 described above. If a user information update instruction has been received, the process proceeds to S1317; if not, the process proceeds to S1318.

S1317では、開発環境300は、S1312で取得したアクセス先情報が示すアクセス先に、ユーザー情報更新要求(ユーザー情報の更新処理の実行要求)と開発者情報を送信する。アクセス先に送信する開発者情報は、S1313で説明したものと同様であり、開発者情報301から取得した、暗号化されたログイン中の開発者のアカウント情報である。 In S1317, the development environment 300 sends a user information update request (a request to execute the user information update process) and developer information to the access destination indicated by the access destination information acquired in S1312. The developer information sent to the access destination is the same as that described in S1313, and is the encrypted account information of the currently logged-in developer acquired from the developer information 301.

S1318では、開発環境300は、開発者用端末100から選択中実行環境の変更指示を受信したか否かを判定する。この変更指示は前述したS1308で開発者用端末100から送信されるものである。選択中実行環境の変更指示を受信した場合はS1319に進み、そうでない場合にはS1311に進んで処理を繰り返す。 In S1318, the development environment 300 determines whether or not an instruction to change the selected execution environment has been received from the developer terminal 100. This change instruction is sent from the developer terminal 100 in S1308 described above. If an instruction to change the selected execution environment has been received, the process proceeds to S1319; if not, the process proceeds to S1311 and the process is repeated.

S1319では、開発環境300は、変更後の選択中実行環境として、変更後の選択中実行環境の実行環境IDをメモリ304に記憶する。 In S1319, the development environment 300 stores the execution environment ID of the selected execution environment after the change in memory 304 as the selected execution environment after the change.

図13(c)に、図13(b)のユーザー情報取得処理に応答した処理である、実行環境400のうち選択中実行環境におけるユーザー情報管理処理のフローチャートを示す。この処理の動作主について、以下では、単に実行環境400と記載するが、実際には、実行環境400のうち選択中実行環境における実行エンジンが実行するものとする。すなわち、例えば選択中実行環境がマルチテナント実行環境410であれば動作主は実行エンジン412であり、実行エンジン412に含まれるプロセッサ413が、メモリ414をワークメモリとしてプログラムを実行することにより実現する。また、例えば、選択中実行環境がシングルテナント実行環境450であれば動作主は実行エンジン452であり、実行エンジン452に含まれるプロセッサ453が、メモリ454をワークメモリとしてプログラムを実行することにより実現する。 Figure 13 (c) shows a flowchart of user information management processing in the selected execution environment of execution environment 400, which is processing in response to the user information acquisition processing in Figure 13 (b). The subject of this processing will be simply referred to as execution environment 400 below, but in reality, it is executed by the execution engine in the selected execution environment of execution environment 400. That is, for example, if the selected execution environment is multi-tenant execution environment 410, the subject of the processing is execution engine 412, and the processor 413 included in execution engine 412 executes a program using memory 414 as a work memory. Also, for example, if the selected execution environment is single-tenant execution environment 450, the subject of the processing is execution engine 452, and the processor 453 included in execution engine 452 executes a program using memory 454 as a work memory.

S1321では、実行環境400は、開発環境300から送信されたユーザー情報取得要求を受信したか否かを判定する。ここで受信するユーザー情報取得要求は、前述したS1313で開発環境300から送信されたものである。ユーザー情報取得要求を受信した場合にはS1322に進み、そうでない場合にはS1327に進む。 In S1321, the execution environment 400 determines whether or not a user information acquisition request sent from the development environment 300 has been received. The user information acquisition request received here is the one sent from the development environment 300 in S1313 described above. If a user information acquisition request has been received, the process proceeds to S1322; if not, the process proceeds to S1327.

S1322では、実行環境400は、アクセス権確認処理を行う。この処理は、ユーザー情報取得要求の送信元が正当なアクセス権を有する開発者からのアクセスであるかを判定するための処理であり、この処理によって、正当なアクセス権を有する開発者以外にユーザー情報が漏洩する可能性が低減し、セキュリティが向上する。アクセス権確認処理については図13(d)を用いて後述する。 In S1322, the execution environment 400 performs an access right confirmation process. This process is for determining whether the sender of the user information acquisition request is a developer with legitimate access rights, and this process reduces the possibility of user information being leaked to anyone other than the developer with legitimate access rights, improving security. The access right confirmation process will be described later with reference to FIG. 13(d).

S1323では、実行環境400は、アクセス権確認処理の結果がエラーであるか否かを判定する。エラーであった場合には、ユーザー情報取得要求の要求元に自身の環境に保持しているユーザー情報を送信することなく、S1321に進む。エラーでない場合にはS1324へ進む。 In S1323, the execution environment 400 determines whether the access right confirmation process results in an error. If there is an error, the execution environment 400 proceeds to S1321 without sending the user information held in its own environment to the source of the user information acquisition request. If there is no error, the execution environment 400 proceeds to S1324.

S1324では、実行環境400は、自身がマルチテナント実行環境410であるか否かを判定する。マルチテナント実行環境410である場合にはS1326へ進み、そうではなくシングルテナント実行環境である場合にはS1325へ進む。 In S1324, the execution environment 400 determines whether it is a multi-tenant execution environment 410. If it is a multi-tenant execution environment 410, the process proceeds to S1326. If it is a single-tenant execution environment, the process proceeds to S1325.

S1325では、実行環境400は、自身の実行環境に保持しているユーザー情報を開発環境300に送信する。シングルテナント実行環境であれば、その環境自体のオーナーが単一の開発者であるため、ユーザー情報は単一の開発者がオーナーであるアプリケーションのものしかない。従って後述するS1326のマルチテナント実行環境での処理のように、ユーザー情報のうちログイン開発者がオーナーである一部分を送信するのではなく、全体を送信する。例えば、選択中実行環境がシングルテナント実行環境450であれば、ユーザー情報451を開発環境300に送信する。ここで送信したユーザー情報が、開発環境300にS1314で受信され、S1315で開発者用端末100に送信される。 In S1325, the execution environment 400 transmits user information held in its own execution environment to the development environment 300. In the case of a single-tenant execution environment, the environment itself is owned by a single developer, and so the user information only relates to applications owned by a single developer. Therefore, as in the processing in a multi-tenant execution environment at S1326 described below, the entire user information is transmitted, rather than a portion of the user information owned by the logged-in developer. For example, if the selected execution environment is a single-tenant execution environment 450, user information 451 is transmitted to the development environment 300. The user information transmitted here is received by the development environment 300 at S1314, and transmitted to the developer terminal 100 at S1315.

S1326では、実行環境400は、自身の実行環境に保持しているユーザー情報のうち、オーナーIDが受信した開発者情報に一致する部分を開発環境300に送信する。暗号化された開発者情報が開発環境300から送信され、後述するS1341で受信され、S1343でデコード(暗号化解除)され、メモリ414に記憶されている。これが受信した開発者情報である。図14(b)に示したマルチテナント実行環境410のユーザー情報411のうち、受信した開発者情報に含まれる開発者ID(メールアドレス)と同じオーナーIDを持つ行の情報を取得し、開発環境300に送信する。マルチテナント実行環境410のユーザー情報411のうち、受信した開発者情報に含まれる開発者ID(メールアドレス)と同じオーナーIDを持たない行の情報は開発環境300に送信しない。マルチテナント実行環境であれば、複数の開発者がオーナーとなるユーザー情報が混在して記録されているため、ユーザー情報のうちログイン開発者がオーナーである一部分を送信する。ここで送信したユーザー情報が、開発環境300にS1314で受信され、S1315で開発者用端末100に送信される。 In S1326, the execution environment 400 transmits to the development environment 300, a portion of the user information held in its own execution environment, whose owner ID matches the received developer information. The encrypted developer information is transmitted from the development environment 300, received in S1341 described later, decoded (decrypted) in S1343, and stored in the memory 414. This is the received developer information. Among the user information 411 of the multitenant execution environment 410 shown in FIG. 14B, information of a row having the same owner ID as the developer ID (email address) included in the received developer information is obtained and transmitted to the development environment 300. Among the user information 411 of the multitenant execution environment 410, information of a row not having the same owner ID as the developer ID (email address) included in the received developer information is not transmitted to the development environment 300. In the case of a multitenant execution environment, since user information owned by multiple developers is recorded in a mixed manner, a portion of the user information owned by the logged-in developer is transmitted. The user information sent here is received by the development environment 300 in S1314 and sent to the developer terminal 100 in S1315.

S1327では、実行環境400は、ユーザー情報更新要求を受信したか否かを判定する。ここで受信するユーザー情報更新要求は、前述したS1317で開発環境300から送信されたものである。ユーザー情報更新要求を受信した場合にはS1328に進み、そうでない場合にはS1321に進む。 In S1327, the execution environment 400 determines whether or not a user information update request has been received. The user information update request received here is the one sent from the development environment 300 in S1317 described above. If a user information update request has been received, the process proceeds to S1328; if not, the process proceeds to S1321.

S1328では、実行環境400は、アクセス権確認処理を行う。この処理は、ユーザー情報更新要求の送信元が正当なアクセス権を有する開発者からのアクセスであるかを判定するための処理であり、この処理によって、正当なアクセス権を有する開発者以外からの要求によってユーザー情報が書き換えられる(更新される)可能性が低減し、セキュリティが向上する。アクセス権確認処理については図13(d)を用いて後述する。 In S1328, the execution environment 400 performs an access right confirmation process. This process is for determining whether the sender of the user information update request is a developer with legitimate access rights, and this process reduces the possibility that user information will be rewritten (updated) by a request from someone other than a developer with legitimate access rights, improving security. The access right confirmation process will be described later with reference to FIG. 13(d).

S1329では、実行環境400は、アクセス権確認処理の結果がエラーであるか否かを判定する。エラーであった場合には、ユーザー情報更新要求に従った更新をすることなく、S1321に進む。エラーでない場合にはS1330へ進む。 In S1329, the execution environment 400 determines whether the access right confirmation process results in an error. If there is an error, the process proceeds to S1321 without updating in accordance with the user information update request. If there is no error, the process proceeds to S1330.

S1330では、実行環境400は、ユーザー情報更新要求に従って自信の環境に記憶しているユーザー情報を更新する。この際、新規にユーザーを登録する場合は、マルチテナント実行環境であればログイン開発者の開発者IDがオーナーIDとして新規ユーザーのアカウント情報に関連付けて登録される。 In S1330, the execution environment 400 updates the user information stored in its own environment in accordance with the user information update request. At this time, when registering a new user, in the case of a multi-tenant execution environment, the developer ID of the logged-in developer is registered as the owner ID in association with the account information of the new user.

図13(d)にアクセス権確認処理のフローチャートを示す。この処理は、前述した図13(c)のS1322、S1328の詳細フローチャートである。 Figure 13(d) shows a flowchart of the access right confirmation process. This process is a detailed flowchart of steps S1322 and S1328 in Figure 13(c) described above.

S1341では、実行環境400は、開発環境300から暗号化された開発者情報を受信したか否かを判定する。ここで受信する開発者情報は、前述したS1313またはS1317で開発環境300から送信されたものである。暗号化された開発者情報を受信した場合にはS1343に進み、そうでない場合にはS1342に進む。 In S1341, the execution environment 400 determines whether or not encrypted developer information has been received from the development environment 300. The developer information received here is that sent from the development environment 300 in S1313 or S1317 described above. If encrypted developer information has been received, the process proceeds to S1343; if not, the process proceeds to S1342.

S1342では、実行環境400は、アクセス権確認処理の結果としてエラーである旨を記録(出力)する。この場合、前述したS1323またはS1329ではエラーと判定される。このように、ユーザー情報取得要求またはユーザー情報更新要求を受信したとしても、暗号化された開発者情報を受信しない場合にはエラーとして、要求に応じた処理は行わない(要求を許可しない)ような要求制御が行われる。従って不正なアクセスに応じた処理を抑制することができる。 In S1342, the execution environment 400 records (outputs) the fact that an error has occurred as a result of the access right confirmation process. In this case, an error is determined in S1323 or S1329 described above. In this way, even if a request to obtain user information or a request to update user information is received, if encrypted developer information is not received, an error is detected and request control is performed such that processing in response to the request is not performed (the request is not permitted). Therefore, processing in response to unauthorized access can be suppressed.

S1343では、実行環境400は、S1341で受信した開発者情報を、予め保持している復号化キーを用いてデコード(暗号化解除、復号化)する。復号化された開発者情報は、実行環境から外に送信されることはないので、漏洩する可能性は低い。 In S1343, the execution environment 400 decodes (decrypts, decrypts) the developer information received in S1341 using a decryption key that is stored in advance. The decrypted developer information is not transmitted outside the execution environment, so there is a low possibility of it being leaked.

S1344では、実行環境400は、S1342でデコードした開発者情報のうち、アクセス可能実行環境を示す部分に、自身の実行環境(当該実行環境)の実行環境IDが含まれているか否かを判定する。含まれている場合には処理を終了し(このケースはアクセスが正当であると見なされる)、含まれていない場合にはS1342に進み、アクセス権確認処理の結果としてエラーである旨を記録(出力)する。これによって、当該実行環境に対してアクセス権のない開発者からのユーザー情報取得要求またはユーザー情報更新要求に応じた処理を行ってしまうことを防止している。従って不正なアクセスに応じた処理を抑制することができる。 In S1344, the execution environment 400 determines whether the execution environment ID of its own execution environment (the execution environment in question) is included in the part of the developer information decoded in S1342 that indicates the accessible execution environments. If it is included, the process ends (in this case the access is deemed to be legitimate), and if it is not included, the process proceeds to S1342, where an error is recorded (output) as a result of the access rights confirmation process. This prevents processing in response to a user information acquisition request or user information update request from a developer who does not have access rights to the execution environment in question. Therefore, processing in response to unauthorized access can be suppressed.

なお、実行環境400は、開発環境300以外からのアクセスは受け付けず、開発環境300以外を送信元とするユーザー情報取得要求またはユーザー情報更新要求があっても要求に応じた処理は行わないように制御する。これによって、開発環境300以外の装置によって暗号化された開発者情報とユーザー情報取得要求またはユーザー情報更新要求が捏造されて送信されたとしてもそれに応じた処理は行わない。従ってセキュリティが向上する。 The execution environment 400 does not accept access from any source other than the development environment 300, and controls so that even if a user information acquisition request or user information update request originates from a source other than the development environment 300, no processing is performed in response to the request. As a result, even if developer information encrypted by a device other than the development environment 300 and a user information acquisition request or user information update request are forged and sent, no processing is performed in response. This improves security.

以上説明したユーザー情報表示処理によれば、実行環境400に対する不正なアクセスによる不正な処理を抑止し、情報漏洩のリスクを低減し、セキュリティを向上させることができる。なお、上述したユーザー情報表示処理では、実行環境に保持されたユーザー情報に関しての処理を説明したが、ユーザー情報に関しての処理以外の、実行環境に関する他の処理についても同様に適用可能である。例えば。実行環境400に保持されたデータベースやファイルに関する処理の際にも同様の処理を適用してセキュリティを向上させることができる。 The user information display process described above can prevent unauthorized processing due to unauthorized access to the execution environment 400, reduce the risk of information leakage, and improve security. Note that, in the above-mentioned user information display process, processing related to user information stored in the execution environment has been described, but the process can also be applied to other processing related to the execution environment other than processing related to user information. For example, similar processing can be applied to processing related to databases and files stored in the execution environment 400 to improve security.

例えば図12のS1210~S1214で説明したデータベースの表示・更新に係る処理に関して適用可能である。この場合、開発者用端末100からのDB操作指示に応じて、開発環境300がS1312と同様に選択中実行環境からアクセス先情報ファイルを取得する。アクセス先情報ファイルには、DB操作要求を受け付けるためのリクエスト先となるDB操作要求受付URLが記録されているので、そこに対して、S1313と同様に、DB操作要求と開発者情報を送信する。実行環境400は、図13(c)、図13(d)で説明した処理と同様に、DB操作要求の送信元が正当かどうかを判定する処理を行い、正当な場合にのみ、DB操作要求に応じて自身の実行環境に保持したDBセットに関する処理を行う。 For example, this is applicable to the processing relating to displaying and updating the database described in S1210 to S1214 in FIG. 12. In this case, in response to a DB operation instruction from the developer terminal 100, the development environment 300 obtains an access destination information file from the selected execution environment in the same manner as in S1312 in response to the DB operation instruction from the developer terminal 100. The access destination information file records a DB operation request reception URL that is the request destination for receiving the DB operation request, and the execution environment 400 sends the DB operation request and developer information to this URL in the same manner as in S1313. The execution environment 400 performs processing to determine whether the sender of the DB operation request is valid, in the same manner as in the processing described in FIG. 13(c) and FIG. 13(d), and only if the sender is valid, performs processing relating to the DB set held in its own execution environment in response to the DB operation request.

また例えば、図12のS1215~S1217で説明したファイル管理に係る処理に関して適用可能である。この場合、開発者用端末100からのファイル管理指示に応じて、開発環境300がS1312と同様に選択中実行環境からアクセス先情報ファイルを取得する。アクセス先情報ファイルには、ファイル管理要求を受け付けるためのリクエスト先となるファイル管理要求受付URLが記録されているので、そこに対して、S1313と同様に、ファイル管理要求と開発者情報を送信する。実行環境400は、図13(c)、図13(d)で説明した処理と同様に、ファイル管理要求の送信元が正当かどうかを判定する処理を行い、正当な場合にのみ、ファイル管理要求に応じて自身の実行環境に保持したファイルに関する処理を行う。 Also, for example, the present invention can be applied to the file management processing described in S1215 to S1217 of FIG. 12. In this case, in response to a file management instruction from the developer terminal 100, the development environment 300 obtains an access destination information file from the selected execution environment in the same manner as in S1312 in response to a file management instruction from the developer terminal 100. Since the access destination information file records a file management request reception URL that is the request destination for receiving a file management request, the execution environment 400 sends the file management request and developer information to the access destination information file in the same manner as in S1313. The execution environment 400 performs processing to determine whether the sender of the file management request is valid, in the same manner as in the processing described in FIG. 13(c) and FIG. 13(d), and only if the sender is valid, performs processing related to the file held in its own execution environment in response to the file management request.

<ワークフロー処理>
図16に、ワークフロー処理のフローチャートを示す。この処理は、図12のS1205の詳細フローチャートである。この処理は開発者用端末100が実行する。
<Workflow processing>
16 shows a flowchart of the workflow process. This process is a detailed flowchart of S1205 in FIG.

S1601では、開発者用端末100は、ディスプレイ105にワークフロー(WF)作成画面を表示する。図17(a)に、WF作成画面の表示例を示す。サブメニュー領域510にはノード一覧1710が表示される。ノード一覧1710には、ノードの選択肢として、始点であるスタート1711、終点であるエンド1712、中間点であるステータス1713が含まれる。キャンバス530が表示されていた領域には、キャンバス530に代えてWF配置領域1700が表示される。WF配置領域1700は、配置前は空白の領域である。ノード一覧1710に表示された複数の選択肢(ノードの選択肢)のいずれかを選択してWF配置領域1700に配置することができる。本実施形態では、ドラッグアンドドロップで配置するものとする。すなわち、ノード一覧1710に表示された複数の選択肢のいずれかをドラッグし、WF配置領域1700にドロップすることで配置することができる。 In S1601, the developer terminal 100 displays a workflow (WF) creation screen on the display 105. FIG. 17A shows an example of the WF creation screen. A node list 1710 is displayed in the submenu area 510. The node list 1710 includes a start 1711, which is the starting point, an end 1712, which is the end point, and a status 1713, which is the intermediate point, as node options. In the area where the canvas 530 was displayed, a WF placement area 1700 is displayed in place of the canvas 530. The WF placement area 1700 is a blank area before placement. Any of the multiple options (node options) displayed in the node list 1710 can be selected and placed in the WF placement area 1700. In this embodiment, the placement is performed by dragging and dropping. That is, any of the multiple options displayed in the node list 1710 can be dragged and dropped into the WF placement area 1700 to place it.

S1602では、開発者用端末100は、ノードを配置する操作があったか否かを判定する。具体的には、ノード一覧1710に表示された複数の選択肢のいずれかドラッグし、WF配置領域1700にドロップすることで配置する操作があったか否かを判定する。ノードを配置する操作があった場合にはS1603に進み、そうでない場合にはS1604に進む。 In S1602, the developer terminal 100 determines whether an operation to place a node has been performed. Specifically, it determines whether an operation to place a node has been performed by dragging one of the options displayed in the node list 1710 and dropping it in the WF placement area 1700. If an operation to place a node has been performed, the process proceeds to S1603; if not, the process proceeds to S1604.

S1603では、開発者用端末100は、ノードを配置する操作に応じてWF配置領域1700に選択されたノードを配置する。 In S1603, the developer terminal 100 places the selected node in the WF placement area 1700 in response to the operation to place the node.

S1604では、開発者用端末100は、矢印を描画する操作があったか否かを判定する。矢印は、配置済みのノードとノードとを繋ぐ矢印であり、矢印の元のノードから先のノードに遷移する際の処理内容を示すものである。配置済みのノードを選択すると、選択されたノードに対して操作パスが表示され、その操作パスにマウスカーソルがある状態でドラッグを開始し(すなわち、マウスの左ボタンを押下してマウスの移動を開始し)、他のノード上でドロップする(すなわち、左ボタンの押下を放す)ことで、矢印を描画することができる。ドラッグの開始元のノードが矢印の元となり、ドロップした位置のノードが矢印の先となる。矢印を描画する操作があった場合にはS1605に進み、そうでない場合にはS1606に進む。 In S1604, the developer terminal 100 determines whether an operation to draw an arrow has been performed. An arrow connects two placed nodes, and indicates the processing content when transitioning from the node at which the arrow originates to the node at which it originates. When a placed node is selected, an operation path is displayed for the selected node, and an arrow can be drawn by starting to drag the mouse cursor on the operation path (i.e., pressing the left mouse button to start moving the mouse) and dropping it on another node (i.e., releasing the left button). The node from which the drag originates becomes the origin of the arrow, and the node at which it is dropped becomes the tip of the arrow. If an operation to draw an arrow has been performed, proceed to S1605; if not, proceed to S1606.

S1605では、開発者用端末100は、矢印を描画する操作に応じてWF配置領域1700に配置済みの2つのノード間に矢印オブジェクトを描画する。 In S1605, the developer terminal 100 draws an arrow object between two nodes already placed in the WF placement area 1700 in response to the operation of drawing an arrow.

図17(b)に、WF配置領域1700にノードと矢印が配置された後の表示例を示す。WF配置領域1700には、ノード1701~1705が配置されている。ノード1701は始点のノードである。ノード1702、1703、1704は中間点(ステータス)のノードである。ノード1705は終点のノードである。矢印1706は、ノード1701からノード1702までの矢印である。矢印1707は、ノード1702からノード1703までの矢印である。矢印1708は、ノード1703からノード1704までの矢印である。矢印1709は、ノード1704からノード1705までの矢印である。各ノードは複数の手順(ステップ)を含むワークフローのうち1つの手順(ステップ)を示しており、矢印は手順の前後関係を示している。すなわち、図示の例では、ノード1701~1705がそれぞれ、1~5番目の手順となることが示されている。 Figure 17 (b) shows an example of the display after nodes and arrows have been placed in the WF placement area 1700. Nodes 1701 to 1705 are placed in the WF placement area 1700. Node 1701 is the starting node. Nodes 1702, 1703, and 1704 are intermediate (status) nodes. Node 1705 is the end node. Arrow 1706 is an arrow from node 1701 to node 1702. Arrow 1707 is an arrow from node 1702 to node 1703. Arrow 1708 is an arrow from node 1703 to node 1704. Arrow 1709 is an arrow from node 1704 to node 1705. Each node indicates one procedure (step) in a workflow that includes multiple procedures (steps), and the arrows indicate the order of the procedures. That is, in the illustrated example, nodes 1701 to 1705 are shown to be the first to fifth steps, respectively.

S1606では、開発者用端末100は、ノードのプロパティを設定する操作があったか否かを判定する。具体的には、WF配置領域1700に配置済みのノードを選択して右クリックをする操作があったか否かを判定する。ノードのプロパティを設定する操作があった場合にはS1607に進み、そうでない場合にはS1608に進む。 In S1606, the developer terminal 100 determines whether an operation to set the properties of a node has been performed. Specifically, it determines whether an operation to select a node that has been placed in the WF placement area 1700 and right-click has been performed. If an operation to set the properties of a node has been performed, the process proceeds to S1607; if not, the process proceeds to S1608.

S1607では、開発者用端末100は、ノードに対してプロパティを設定するためのプロパティボックスを表示し、ノードのプロパティの設定操作を受け付ける。図17(c)に、ノードのプロパティボックスの表示例を示す。ノードのプロパティボックスでは、ノードのID(他のノードと重複しない初期値が設定されていて、変更可能)、ラベル(表示される名称)、生成したワークフローを配置するUI画面のIDの設定とを受け付ける。UI画面のIDの設定は、UI画面のIDの一覧が選択肢として表示され、その選択肢の中から選択して設定することができる。 In S1607, the developer terminal 100 displays a property box for setting properties for the node, and accepts operations for setting the node properties. FIG. 17(c) shows an example of a node property box display. The node property box accepts settings for the node ID (an initial value that does not overlap with other nodes is set, and can be changed), label (the name to be displayed), and the ID of the UI screen on which the generated workflow will be placed. The UI screen ID can be set by selecting from a list of UI screen IDs displayed as options.

S1608では、開発者用端末100は、矢印のプロパティを設定する操作があったか否かを判定する。具体的には、WF配置領域1700に描画済みの矢印を選択して右クリックをする操作があったか否かを判定する。矢印のプロパティを設定する操作があった場合にはS1609に進み、そうでない場合にはS1610に進む。 In S1608, the developer terminal 100 determines whether an operation to set the properties of the arrow has been performed. Specifically, it determines whether an operation to select an arrow that has already been drawn in the WF placement area 1700 and right-click has been performed. If an operation to set the properties of the arrow has been performed, the process proceeds to S1609; if not, the process proceeds to S1610.

S1609では、矢印に対してプロパティを設定するためのプロパティボックスを表示し、矢印のプロパティであるオペレーションプロパティの設定操作を受け付ける。図17(e)に、矢印のプロパティボックスの表示例を示す。矢印のプロパティボックスでは、矢印のID(他の矢印と重複しない初期値が設定されていて、変更可能)、ラベル(表示される名称)、種別(タイプ)、ユーザーの設定とを受け付ける。種別は、承認(Update)、申請(Creat)、差戻(Remand)にそれぞれ対応する選択肢のうちいずれかをを選択して設定可能である。ユーザーはSelectUserとCurrentUserにそれぞれ対応する選択肢のうちいずれかを選択して設定可能である。種別は、当該矢印の元の手順から先の手順に遷移する際のアクションの種別を示している。この種別に基づいて、後述する自動的に配置されるUI部品のアクションが自動設定される。 In S1609, a property box for setting properties for the arrow is displayed, and the operation property, which is a property of the arrow, is set and a setting operation for the operation property, which is a property of the arrow, is accepted. FIG. 17(e) shows an example of the display of the property box for an arrow. The property box for an arrow accepts the arrow ID (an initial value that does not overlap with other arrows is set and can be changed), label (name to be displayed), type, and user settings. The type can be set by selecting one of the options corresponding to approval (Update), application (Create), and return (Remand). The user can set the type by selecting one of the options corresponding to SelectUser and CurrentUser. The type indicates the type of action when transitioning from the original procedure of the arrow to the subsequent procedure. Based on this type, the action of the UI part that is automatically placed, which will be described later, is automatically set.

S1610では、開発者用端末100は、ワークフロー生成ボタン1730が押下されたか否かを判定する。ワークフロー生成ボタン1730が押下された場合はS1611に進み、そうでない場合はS1615に進む。 In S1610, the developer terminal 100 determines whether the workflow creation button 1730 has been pressed. If the workflow creation button 1730 has been pressed, the process proceeds to S1611; if not, the process proceeds to S1615.

S1611では、開発者用端末100は、図17(e)に示す選択受付フォーム(ダイアログボックス)をウィザードとして表示し、作成対象のステータスの選択を受け付ける。スタート、申請中、承認済み、未申請の中かから少なくとも1つを作成対象のステータスとして選択可能である。 In S1611, the developer terminal 100 displays the selection acceptance form (dialog box) shown in FIG. 17(e) as a wizard and accepts the selection of the status to be created. At least one of start, applying, approved, and not applied for can be selected as the status to be created.

S1612では、開発者用端末100は、図17(f)に示す選択受付フォーム(ダイアログボックス)をウィザードとして表示し、タスクテーブルを追加作成対象とするかの選択を受け付ける。ここでは、タスクテーブルを生成するか否か、及び、追加する対象となるUI画面のIDの選択が可能である。UI画面のIDの選択は、UI画面のIDの一覧が選択肢として表示され、その選択肢の中から選択することができる。 In S1612, the developer terminal 100 displays the selection acceptance form (dialog box) shown in FIG. 17(f) as a wizard, and accepts the selection of whether to create an additional task table. Here, it is possible to select whether to generate a task table, and the ID of the UI screen to be added. When selecting the ID of the UI screen, a list of UI screen IDs is displayed as options, and the user can select from the options.

S1613では、開発者用端末100は、図17(g)に示す指定受付フォーム(ダイアログボックス)をウィザードとして表示し、データベースの指定(選択)を受け付ける。データベースの指定は、表示された選択肢から選択することで指定することができる。 In S1613, the developer terminal 100 displays the specification reception form (dialog box) shown in FIG. 17(g) as a wizard and receives the specification (selection) of the database. The database can be specified by selecting from the displayed options.

S1614では、開発者用端末100は、WF配置領域1700に配置済みのノード、矢印と、それぞれのプロパティ、及び、S1611~S1614で選択肢から選択を行って設定された内容に基づいて、ワークフロー定義を作成し、メモリ102の定義情報に記録する。これによって、UI画面にワークフローに基づくUI部品(UIコンポーネント)が自動的に配置される。自動的に配置されたUI部品は自動的にワークフローに対応するアクションが設定されたものである。このように開発者ユーザーがプログラミング言語での記述をすることなく、選択肢を選択していく操作で生成したワークフローに基づいてアクションが自動的に定義されたUI部品が生成される。また、図17(g)に示す指定受付フォームで指定されたデータベースに、ワークフローで用いるテーブルが作成される。また、設定内容によってUI画面のキャンバスにもアクションが設定(定義)される。キャンバスに設定されたアクションは、構築されたアプリケーションにおいてそのUI画面がロード(読込)された場合に行う処理である。すなわち、画面表示の際に初期動作として行う処理である。 In S1614, the developer terminal 100 creates a workflow definition based on the nodes and arrows already placed in the WF placement area 1700, their properties, and the contents set by selecting from the options in S1611 to S1614, and records the definition information in the memory 102. As a result, UI parts (UI components) based on the workflow are automatically placed on the UI screen. The automatically placed UI parts are automatically set with actions corresponding to the workflow. In this way, UI parts with automatically defined actions are generated based on the workflow generated by the operation of selecting options without the developer user writing in a programming language. In addition, a table used in the workflow is created in the database specified in the specification reception form shown in FIG. 17(g). Also, an action is set (defined) in the canvas of the UI screen depending on the setting contents. The action set in the canvas is a process to be performed when the UI screen is loaded (read) in the constructed application. In other words, it is a process to be performed as an initial operation when the screen is displayed.

S1615では、開発者用端末100は、画面切替操作があったか否かを判定する。より詳しくは、メインメニュー領域510に含まれるいずれかの選択肢が選択されたか否かを判定する。メインメニュー領域510に含まれるいずれかの選択肢が選択された場合には図16の処理を終了し、図12で前述した画面切替処理へ進む。そうでない場合はS1602に進む。 In S1615, the developer terminal 100 determines whether a screen switching operation has been performed. More specifically, it determines whether any of the options included in the main menu area 510 has been selected. If any of the options included in the main menu area 510 has been selected, the process of FIG. 16 ends, and the process proceeds to the screen switching process described above in FIG. 12. If not, the process proceeds to S1602.

図18(a)に、図16のS1614で追加されるデータベースのテーブルを、メインメニュー領域のデータベースボタン516を押下して表示させた場合の表示例を示す。すなわち、図18(a)は、図12のS1214で表示されるデータベースに関する画面の1つである。サブメニュー領域に表示されたテーブル一覧のうち、テーブル1801とテーブル1802が、ワークフローの生成に応じて自動的に追加されたテーブルである。S1613で指定を受け付けたデータベースに含まれる(従属する、下位階層となる)テーブルとして追加(生成)されている。 Figure 18 (a) shows an example of the display when database tables added in S1614 of Figure 16 are displayed by pressing database button 516 in the main menu area. That is, Figure 18 (a) is one of the screens related to the database displayed in S1214 of Figure 12. Of the table list displayed in the submenu area, table 1801 and table 1802 are tables that were automatically added in response to the generation of the workflow. They have been added (generated) as tables included (subordinate, lower hierarchical) in the database whose specification was accepted in S1613.

図18(b)に、図16のS1614で自動的にUI部品が配置されたUI画面のキャンバスの表示例を示す。キャンバス530に配置されたUI部品1811~1813がワークフローの生成に応じて自動的に配置されたUI部品である。すなわち、UI部品1811~1813は、サブメニュー領域のUI部品一覧から開発者がドラッグアンドドロップを行って配置したものではない。UI部品1813には自動的にアクションが設定(定義)されている。UI部品1813は、ワークフローにおける次の手順に遷移する際のアクションが定義された自動生成部品である。また、UI部品1813が配置されたUI画面は、UI部品1813に自動的に定義されたアクションの実行によるワークフローの次の手順への遷移における遷移元の画面である。 Figure 18 (b) shows an example of a canvas display of a UI screen on which UI parts are automatically placed in S1614 of Figure 16. UI parts 1811-1813 placed on canvas 530 are UI parts that are automatically placed in response to the generation of a workflow. In other words, UI parts 1811-1813 are not placed by the developer by dragging and dropping from the UI part list in the submenu area. An action is automatically set (defined) in UI part 1813. UI part 1813 is an automatically generated part in which an action for transitioning to the next step in the workflow is defined. In addition, the UI screen on which UI part 1813 is placed is the transition source screen in the transition to the next step in the workflow by executing the action automatically defined in UI part 1813.

図18(c)に、ボタンであるUI部品1813を指定UI部品としてアクションボードを表示した場合の表示例を示す。すなわち、このアクションボードは、指定UI部品をUI部品1813とした場合に図8で前述したS801で表示されるものである。アクションボード910には、開発者がプログラミング言語でのアクションの記述を行っていない状態で、初期値として図18(c)のようなアクションの文字列がプログラミング言語で記述された状態で表示される。言い換えれば、アクションボード910には、開発者が当該アクションに関してプログラム言語でのソースコードの記述を行っていない状態で、初期値として図18(c)のような、アクションを定義したプログラミング言語でのソースコードが表示される。図18(c)のアクションボート910に表示されたアクションには、図16のワークフロー作成処理においてユーザーから受け付けた操作群に基づいて、少なくとも、データベース(3行目)、次に表示すべきUI画面(6行目)が定義されている。ユーザーは、このように自動的に定義されたアクションを前述したS802~S808の処理によって編集可能である。すなわち、自動的に定義されたアクションの文字列をベースとして、これを一部流用し、一部改変または文字列を追加するようにプログラミング言語を入力することができる。すなわち、自動的に定義されたアクションの文字列に対する修正操作を受け付けることができる。このように、自動的に生成されて表示されたアクションのプログラミング言語をベースとすることで、開発者がゼロからプログラミング言語でアクションを記述するよりも、少ない操作手数(テキスト入力量)で簡単にアクションを設定することができる。また、自動的に生成されたアクションをそのまま使うことなく修正を加えてカスタマイズできるため、より細かい要望に応えるアクションを生成可能である。 Figure 18 (c) shows an example of a display when an action board is displayed with the UI part 1813, which is a button, as the specified UI part. That is, this action board is displayed in S801 described above in Figure 8 when the specified UI part is the UI part 1813. The action board 910 displays the action character string as shown in Figure 18 (c) written in a programming language as the initial value when the developer has not written the action in a programming language. In other words, the action board 910 displays the source code in the programming language that defines the action as shown in Figure 18 (c) as the initial value when the developer has not written the source code for the action in a programming language. The action displayed in the action board 910 in Figure 18 (c) has at least a database (line 3) and a UI screen to be displayed next (line 6) defined based on the group of operations received from the user in the workflow creation process in Figure 16. The user can edit the action automatically defined in this way by the processes of S802 to S808 described above. That is, a programming language can be input that uses the character string of an automatically defined action as a base, partially reuses it, and modifies or adds character strings. That is, it is possible to accept modifications to the character string of an automatically defined action. In this way, by using the programming language of an automatically generated and displayed action as a base, it is possible to set an action easily with fewer steps (amount of text input) than if a developer were to write the action in a programming language from scratch. Also, because automatically generated actions can be customized by making modifications rather than using them as is, it is possible to generate actions that meet more detailed requests.

図18(d)に、ワークフローの生成に応じて自動的にアクションが設定されたUI画面のキャンバスのアクションボードを表示した場合の表示例を示す。このアクションボードは、キャンバスの空白領域を指定してコンテキストメニュー処理を行ってアクションボードの表示を指示した場合に表示されるものである。後述する図19のS1903で表示される。アクションボードには、開発者がプログラミング言語でのアクションの記述を行っていない状態で、初期値として図18(d)のようなアクションの文字列がプログラミング言語で記述された状態で表示される。言い換えれば、アクションボードには、開発者が当該アクションに関してプログラム言語でのソースコードの記述を行っていない状態で、初期値として図18(d)のような、アクションを定義したプログラミング言語でのソースコードが表示される。ユーザーは、このように自動的に定義されたアクションを後述するS1904の処理によって編集可能である。すなわち、図18(c)で説明したUI部品に自動的に設定されたアクションと同様、少ない操作手数(テキスト入力量)で簡単にアクションを設定することができ、かつ、より細かい要望に応えるアクションを生成可能である。 Figure 18(d) shows an example of a display when an action board is displayed on a canvas of a UI screen where an action is automatically set according to the generation of a workflow. This action board is displayed when a blank area of the canvas is specified and a context menu process is performed to instruct the display of the action board. It is displayed in S1903 of Figure 19, which will be described later. The action board displays a character string of the action as shown in Figure 18(d) written in a programming language as an initial value when the developer has not written the action in a programming language. In other words, the action board displays a source code in a programming language that defines the action as shown in Figure 18(d) as an initial value when the developer has not written source code for the action in a programming language. The user can edit such automatically defined actions by the process of S1904, which will be described later. That is, like the action automatically set in the UI part described in Figure 18(c), actions can be easily set with fewer operations (amount of text input), and actions that meet more detailed requests can be generated.

上述したワークフローの生成に応じて自動的に生成されるUI部品、アクションに対して、例えば以下のようなカスタマイズを加えることが可能である。
・キャンパスのアクションボードに、ワークフロー中における今の手順(ステップ)名を表示するアクションを設定する。
・申請理由のインプットフィールド(UI部品)を配置し、そこに入力されたデータを次のステップに送るようにUI部品1813のアクションボードに修正を加える。
・違うテーブルにデータを保存するように、部品1813のアクションボードに修正を加える。例えば、申請理由とケースIDなどを別のDBにも記録するようにカスタマイズする。
・キャンパスのアクションボードに、UI部品1812(コンボボックス)に初期入力するユーザーを、前回申請した人、というアクションをプログラミング限度で書くことにより設定する。あるいは、承認可能な人を選択肢として表示するというアクションを書く。
For example, the following customizations can be added to the UI parts and actions that are automatically generated in response to the generation of the above-mentioned workflow.
- Set up an action on the canvas action board that displays the name of the current step in the workflow.
An input field (UI part) for the reason for application is placed, and the action board of the UI part 1813 is modified so that the data entered there is sent to the next step.
Modify the action board of the part 1813 so that the data is saved in a different table. For example, customize it so that the reason for application and the case ID are also recorded in a separate DB.
On the action board of the campus, set the user who is initially input to the UI part 1812 (combo box) to be the person who applied last time by writing an action with the programming limit. Alternatively, write an action to display people who can approve as options.

このように、本実施形態によれば、ワークフローの基本的な部分はワークフロー作成画面での操作とウィザードへの入力内容に沿って(すなわちプログラミング言語でソースコードを記述する操作を含まず、選択肢から選択する操作を含む操作群に基づいて)、簡単な操作で素早く作成することができる。なおかつ、自動的に作成されたUI部品やUI画面のキャンバスに設定されたアクションをプログラミング言語で修正可能に提示することで、より自由度の高い設計ができる。 As described above, according to this embodiment, the basic parts of a workflow can be created quickly and easily by following the operations on the workflow creation screen and the input contents into the wizard (i.e., based on a group of operations that does not include the operation of writing source code in a programming language, but includes the operation of selecting from options). Furthermore, by presenting automatically created UI components and actions set on the canvas of the UI screen in a form that can be modified in a programming language, a more flexible design can be achieved.

<CRUD生成処理>
図19に、キャンバスのコンテキストメニュー処理のフローチャートを示す。この処理は、前述した図7のS703の詳細フローチャートである。この処理は開発者用端末100が実行する。キャンバスのコンテキストメニューには、CRUDを生成するための選択肢が含まれる。
<CRUD Generation Process>
Fig. 19 shows a flowchart of the canvas context menu process. This process is a detailed flowchart of S703 in Fig. 7 described above. This process is executed by the developer terminal 100. The canvas context menu includes an option for generating a CRUD.

本実施形態では、CRUDの生成の説明のための例として、CRUDの生成前(CRUDボタンの配置前)に、図20(a)に示すような選択中UI画面のキャンバスが表示されていた場合に、キャンバスの空白領域が右クリックされてキャンバスのコンテキストメニューが表示された場合の例を説明する。CRUDとは、ソフトウェアに要求される4つの基本機能である、データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の頭文字を繋げた語である。図20(a)のキャンバスには、UIエディタ処理において開発者によって配置されたUI部品2001~2003が表示されている。UI部品2001~2003はいずれも種別がInputのUI部品である。UI部品2001はラベルとして「ID」、UI部品2002は初期Valueとして「Name」、UI部品2003はラベルとして「age」、がそれぞれ表示されている。すなわち、図20(a)のキャンバスは、何らかのユーザー登録をするための画面を想定して設計されたUI画面のキャンバスである。UI部品2001は新規登録するユーザーのIDを、UI部品2002は新規登録するユーザーの名前を、UIの部品2003は新規登録するユーザーの年齢を、それぞれ入力してもらうための入力欄である。UI部品2001~2003のUI部品IDはそれぞれ、「number_field_ID」、「text_field_Name」、「number_field_age」であるものとする。 In this embodiment, as an example for explaining the generation of a CRUD, a case will be described in which, before the generation of a CRUD (before the placement of a CRUD button), a canvas of a selected UI screen as shown in FIG. 20(a) is displayed, and a blank area of the canvas is right-clicked to display a context menu of the canvas. CRUD is a word formed by combining the initial letters of four basic functions required for software: data creation (Create), data read (Read), data update (Update), and data deletion (Delete). The canvas in FIG. 20(a) displays UI parts 2001 to 2003 that were placed by a developer in the UI editor process. All of the UI parts 2001 to 2003 are UI parts of type Input. The UI part 2001 displays "ID" as a label, the UI part 2002 displays "Name" as an initial value, and the UI part 2003 displays "age" as a label. That is, the canvas in FIG. 20(a) is a canvas for a UI screen designed to be a screen for some kind of user registration. UI part 2001 is an input field for inputting the ID of the new user to be registered, UI part 2002 is an input field for inputting the name of the new user to be registered, and UI part 2003 is an input field for inputting the age of the new user to be registered. The UI part IDs of UI parts 2001 to 2003 are "number_field_ID", "text_field_Name", and "number_field_age", respectively.

S1901では、開発者用端末100は、マウスカーソルの近傍にキャンバスのコンテキストメニューを重畳表示する。図20(b)に、キャンバスのコンテキストメニューの表示例を示す。キャンバスのコンテキストメニューには、メニュー項目である選択肢2011~2015が表示される。 In S1901, the developer terminal 100 displays a canvas context menu superimposed near the mouse cursor. FIG. 20(b) shows an example of the canvas context menu display. The canvas context menu displays options 2011 to 2015, which are menu items.

S1902では、開発者用端末100は、キャンバスのコンテキストメニューのうちアクションボードの表示を指示するメニュー項目(選択肢2013)が押下されたか否かを判定する。アクションボードの表示を指示するメニュー項目(選択肢2013)が押下された場合はS1903に進み、そうでない場合はS1906に進む。 In S1902, the developer terminal 100 determines whether or not a menu item (option 2013) instructing the display of the action board has been pressed in the canvas context menu. If the menu item (option 2013) instructing the display of the action board has been pressed, the process proceeds to S1903; otherwise, the process proceeds to S1906.

S1903では、開発者用端末100は、メモリ102に保持した定義情報に基づき、キャンバスのアクションボードを表示する。キャンバスのアクションボードの表示例は例えば前述した図18(d)に示したものである。図18(d)は自動的にアクションが設定されている例である。アクションが設定されていない場合は、アクションボードは空白の状態で表示される。過去に開発者がアクションボードにアクションを入力(設定)しており、定義情報にその内容が記録されている場合は、アクションボードには設定済みのアクションを示すプログラミング言語の文字列が表示される。 In S1903, the developer terminal 100 displays the canvas action board based on the definition information stored in the memory 102. An example of the display of the canvas action board is shown in FIG. 18(d) described above. FIG. 18(d) is an example in which an action has been automatically set. If no action has been set, the action board is displayed blank. If a developer has previously input (set) an action into the action board and the contents of that action are recorded in the definition information, a character string in a programming language indicating the set action is displayed on the action board.

S1904では、開発者用端末100は、アクションボードに対する開発者ユーザーからのプログラミング言語での入力操作、編集操作、及び、関数の設定操作を受け付ける(編集受付)。この処理は、前述した図8のS802~S823の処理と同様の処理であるため、詳細は省略する。 In S1904, the developer terminal 100 accepts input operations, editing operations, and function setting operations in a programming language from the developer user on the action board (editing acceptance). This process is similar to the processes in S802 to S823 in FIG. 8 described above, so details are omitted.

S1905では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS1904に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、図19の処理を終了して、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S1905, the developer terminal 100 determines whether or not an operation to close the action board (an operation to end the action board processing) has been performed. If an operation to close the action board has not been performed, the process proceeds to S1904 and the processing is repeated. If an operation to close the action board has been performed, the action board is hidden, the processing of FIG. 19 is terminated, the display is switched to the canvas of the selected UI screen, and the process returns to the UI editor processing.

S1906では、開発者用端末100、キャンバスのコンテキストメニューのうちCRUDの生成を指示するメニュー項目(選択肢2015)が押下されたか否かを判定する。CRUDの生成を指示するメニュー項目(選択肢2015)が押下された場合はS1907に進み、そうでない場合はS1914に進む。 In S1906, the developer terminal 100 determines whether a menu item (option 2015) instructing the generation of a CRUD has been pressed in the context menu of the canvas. If the menu item (option 2015) instructing the generation of a CRUD has been pressed, the process proceeds to S1907; otherwise, the process proceeds to S1914.

S1907では、開発者用端末100は、ウィザードとしてCRUDの入力フォーム1(ダイアログボックスである)を表示し、CRUDにおいてデータを取得する対象のUI部品を選択する操作を受け付ける。図20(c)に、CRUDの入力フォーム1の表示例を示す。領域2021には、選択中UI画面に配置されている全UI部品のUI部品IDが選択肢として表示される。ユーザー(開発者)は、領域2021に表示された選択肢のうち、データ取得の対象としたい選択肢を選択し、選択済み領域2022に表示させることで選択を行う。 In S1907, the developer terminal 100 displays CRUD input form 1 (a dialog box) as a wizard and accepts an operation to select a UI part in the CRUD from which data is to be acquired. FIG. 20(c) shows an example of the display of CRUD input form 1. In area 2021, the UI part IDs of all UI parts placed on the selected UI screen are displayed as options. The user (developer) selects an option from which data is to be acquired from among the options displayed in area 2021, and makes the selection by displaying it in selected area 2022.

S1908では、開発者用端末100では、入力フォーム1での選択操作が行われ、NEXTアイコン2023が押下されたか否かを判定する。NEXTアイコン2023が押下された場合はS1909に進み、そうでない場合はS1908でNEXTアイコン2023の押下を待つ。 In S1908, the developer terminal 100 determines whether a selection operation is performed on input form 1 and whether the NEXT icon 2023 is pressed. If the NEXT icon 2023 is pressed, the process proceeds to S1909; if not, the process waits in S1908 for the NEXT icon 2023 to be pressed.

S1909では、開発者用端末100は、CRUDの入力フォーム2(ダイアログボックスである)を表示し、CRUDの対象となるデータベースのテーブルに用意すべきカラムの選択を受け付ける。図20(d)に、CRUDの入力フォーム2の表示例を示す。領域2031には、入力フォーム1で選択されたUI部品のUI部品IDが選択肢として表示される。ユーザー(開発者)は、領域2031に表示された選択肢のうち、CRUDの対象カラムとしたい選択肢を選択し、選択済み領域2032に表示させることで選択を行う。 In S1909, the developer terminal 100 displays CRUD input form 2 (a dialog box) and accepts the selection of columns to be prepared in the database table that is the target of the CRUD. Figure 20 (d) shows an example of the display of CRUD input form 2. In area 2031, the UI part IDs of the UI parts selected in input form 1 are displayed as options. The user (developer) selects the option that they want to use as the target column of the CRUD from the options displayed in area 2031, and makes the selection by displaying it in selected area 2032.

S1910では、開発者用端末100は、入力フォーム2での選択操作が行われ、NEXTアイコン2033が押下されたか否かを判定する。NEXTアイコン2033が押下された場合はS1911に進み、そうでない場合はS1910でNEXTアイコン2033の押下を待つ。 In S1910, the developer terminal 100 determines whether a selection operation has been performed in input form 2 and whether the NEXT icon 2033 has been pressed. If the NEXT icon 2033 has been pressed, the process proceeds to S1911; if not, the process waits in S1910 for the NEXT icon 2033 to be pressed.

S1911では、開発者用端末100は、CRUDの入力フォーム3(ダイアログボックスである)を表示し、CRUDの対象となるデータベースとテーブルの選択操作を受け付ける。図20(e)に、CRUDの入力フォーム3の表示例を示す。領域2041は、データベースの選択を受け付けるための領域である。データベースの選択は、右端のアイコンを押下して表示される選択肢から選択することができる。領域2042は、テーブルの名称の入力を受け付けるための領域である。 In S1911, the developer terminal 100 displays CRUD input form 3 (a dialog box) and accepts the selection of the database and table to be targeted by the CRUD. FIG. 20(e) shows an example of the display of CRUD input form 3. Area 2041 is an area for accepting the selection of a database. The database can be selected from the options displayed by pressing the icon on the far right. Area 2042 is an area for accepting the input of the name of the table.

S1912では、開発者用端末100は、入力フォーム3での選択/入力操作が行われ、FINISHアイコン2043が押下されたか否かを判定する。FINISHアイコン2043が押下された場合はS1913に進み、そうでない場合はS1912でFINISHアイコン2043の押下を待つ。 In S1912, the developer terminal 100 determines whether a selection/input operation has been performed in the input form 3 and whether the FINISH icon 2043 has been pressed. If the FINISH icon 2043 has been pressed, the process proceeds to S1913; if not, the process waits in S1912 for the FINISH icon 2043 to be pressed.

S1913では、開発者用端末100は、入力フォーム1~3に入力された内容(選択された内容)に基づいて、CRUDボタンを生成して選択中UI画面に自動的に配置する。また、CRUDボタンが押下されたことに応じて遷移して表示される画面であるNextUIとなるUI画面を生成する。すなわち、選択中アプリにUI画面が自動生成される。また、入力フォーム3に入力された内容のデータベースのテーブルを選択中実行環境のDBセットに自動的に生成する。 In S1913, the developer terminal 100 generates a CRUD button based on the contents entered in input forms 1 to 3 (selected contents) and automatically places it on the selected UI screen. It also generates a UI screen that becomes the Next UI, which is the screen that is transitioned to and displayed in response to pressing the CRUD button. In other words, a UI screen is automatically generated in the selected app. It also automatically generates a database table for the contents entered in input form 3 in the DB set of the selected execution environment.

S1914では、開発者用端末100は、キャンバスのコンテキストメニューのうちその他のメニュー項目(選択肢2011、2012、2014のいずれか)が押下されたか否かを判定する。その他のメニュー項目が押下された場合はS1915に進み、そうでない場合はS1916に進む。 In S1914, the developer terminal 100 determines whether or not a "Other" menu item (any of options 2011, 2012, or 2014) in the canvas context menu has been pressed. If a "Other" menu item has been pressed, the process proceeds to S1915; otherwise, the process proceeds to S1916.

S1915では、開発者用端末100は、押下されたメニュー項目に応じた処理である、その他の処理を行う。 In S1915, the developer terminal 100 performs other processing, which is processing corresponding to the pressed menu item.

S1916では、開発者用端末100は、キャンバスのコンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、S1917でコンテキストメニューを非表示とし、図19の処理を終了する。閉じる操作がない場合にはS1902に戻る。 In S1916, the developer terminal 100 determines whether or not an operation to close the context menu of the canvas has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden in S1917, and the processing in FIG. 19 ends. If no operation to close has been performed, the processing returns to S1902.

図20(f)に、S1913の処理によって自動的に配置されたCRUDボタン(自動生成部品)の表示例を示す。図20(f)は、図20(a)と同じUI画面のキャンバスの表示例であり、図20(a)と同じUI部品には同じ符号を付す。図20(f)では、図20(a)に対して、UI部品2051~2053が追加されている。このUI部品2051~2053がCRUDボタンである。CRUDボタンであるUI部品2051~2053には自動的にアクションが設定されている。CRUDボタンであるUI部品2051のアクションは、UI部品2051が押下されたことに応じて、入力フォーム3で設定されたデータベースのテーブルに、入力フォーム1で選択されたUI部品に入力されている値を保存する(更新または追加する)処理を行い、その後、NextUIに画面遷移する処理である。CRUDボタンであるUI部品2052のアクションは、UI部品2052が押下されたことに応じて、入力フォーム3で設定されたデータベースのテーブルのうち、入力フォーム1で選択されたUI部品に入力されている値を持つデータを削除する処理を行い、その後、NextUIに画面遷移する処理である。CRUDボタンであるUI部品2053のアクションは、UI部品2052が押下されたことに応じて、入力フォーム3で選択されたデータベースのテーブルのうち、入力フォーム1で選択されたUI部品に入力されている値と一致するデータを取得し、NextUIに画面遷移して取得したデータを表示する処理である。 Figure 20(f) shows an example of the display of a CRUD button (automatically generated component) automatically arranged by the processing of S1913. Figure 20(f) is an example of the display of a canvas of the same UI screen as Figure 20(a), and the same UI components as Figure 20(a) are given the same reference numerals. In Figure 20(f), UI components 2051-2053 have been added to Figure 20(a). These UI components 2051-2053 are CRUD buttons. Actions are automatically set for the UI components 2051-2053 that are CRUD buttons. The action of UI component 2051 that is a CRUD button is to perform a process of saving (updating or adding) the value entered in the UI component selected in input form 1 in the database table set in input form 3 in response to pressing of UI component 2051, and then to transition to the Next UI screen. The action of UI part 2052, which is a CRUD button, is to delete data having the value entered in the UI part selected in input form 1 from the database table set in input form 3 in response to pressing of UI part 2052, and then transition to the Next UI screen. The action of UI part 2053, which is a CRUD button, is to retrieve data that matches the value entered in the UI part selected in input form 1 from the database table selected in input form 3 in response to pressing of UI part 2052, and transition to the Next UI screen to display the retrieved data.

図20(g)に、S1913の処理によって自動的に生成されたUI画面(UI画面IDはcrud-newui-UI01)の表示例を示す。図20(g)は、図20(a)と異なるUI画面のキャンバスの表示例であり、UI部品であるデータグリッド2061が配置されている。データグリッド2061は、「ID」、「number_field_ID」、「text_field_Name」、「number_field_age」の4つのカラムを有している。このうち、ID以外のカラムは、入力フォーム2で選択されたUI部品に対応するものである。また、ボタンであるUI部品2062が自動的に配置されている。このUI画面(crud-newui-UI01)には、キャンバスのアクションも自動的に設定されている。自動的に設定されたキャンバスのアクションは、入力フォーム3で設定されたデータベースのテーブルのうち、遷移元の画面の各種CRUDボタンが押下された場合の、CRUDの対象のなった行のデータをデータグリッド2061に表示するように制御するアクションである。このキャンバスのアクションも、前述したS1904の処理によって、自動的に設定されたアクションをベースとして開発者(ユーザー)がカスタマイズ可能である。 Figure 20 (g) shows an example of a UI screen (UI screen ID is crud-newui-UI01) that was automatically generated by the processing of S1913. Figure 20 (g) is an example of a canvas display of a UI screen different from that of Figure 20 (a), in which a data grid 2061, which is a UI component, is arranged. Data grid 2061 has four columns: "ID", "number_field_ID", "text_field_Name", and "number_field_age". Of these, the columns other than ID correspond to the UI components selected in input form 2. In addition, UI component 2062, which is a button, is automatically arranged. Canvas actions are also automatically set in this UI screen (crud-newui-UI01). The automatically set canvas action is an action that controls the display of data in the row targeted by the CRUD in the data grid 2061 when one of the various CRUD buttons on the transition source screen is pressed in the database table set in input form 3. This canvas action can also be customized by the developer (user) based on the action that was automatically set by the processing in S1904 described above.

また、自動生成されたデータグリッド2061も後述するグリッドのプロパティボックスやアクションボードによって各種編集が可能である。例えば、グリッドの装飾を変更したり、カラム名として表示されているラベルを「text_field_Name」から「名前」に変更したりすることができる。また、例えば、一部のカラムを表示しないように修正することが可能である。アプリケーションをデプロイして運用を開始した後に、何らかの事情(例えば法規制や運用方法の変更など)でカラムを増減させたい場合があり得る。例えば、将来、データグリッド2061のうち、「number_field_age」のカラムを表示しないように変更したい場合が発生する可能性がある。この場合、UIエディタでカラムのプロパティから削除したいカラムを削除するだけで削除できる。従って改めてCRUDの入力フォーム1~3を入力しなおして生成しなおす必要がない。このように、CRUDの入力フォーム(フィザード)への入力に応じて自動的に生成されたUI部品や画面を編集できることで、アプリケーションの将来の運用の変更などにも少ない操作手数で簡単に、柔軟に対応することができる。 The automatically generated data grid 2061 can also be edited in various ways using the grid property box and action board described later. For example, the decoration of the grid can be changed, and the label displayed as the column name can be changed from "text_field_Name" to "Name". For example, it is possible to modify the display so that some columns are not displayed. After the application is deployed and operation is started, there may be cases where you want to increase or decrease columns due to some circumstances (such as changes in regulations or operation methods). For example, there may be a case in the future where you want to change the data grid 2061 so that the "number_field_age" column is not displayed. In this case, you can delete the column you want to delete by simply deleting it from the column properties in the UI editor. Therefore, there is no need to re-enter and re-generate the CRUD input forms 1 to 3. In this way, by being able to edit the UI parts and screens that are automatically generated according to the input to the CRUD input form (fizard), future changes in the operation of the application can be easily and flexibly handled with few operations.

図21(a)に、S1913の処理によって自動的に追加されたデータベースのテーブルの例を示す。この表示例は、メインメニュー領域のデータベースボタン516を押下して表示させた場合の表示例である。すなわち、図21(a)は、図12のS1214で表示されるデータベースに関する画面の1つである。サブメニュー領域に表示されたデータベース「sample」に含まれるテーブル一覧(TABLES)のうち、テーブル2101(CRUD_T01)が、CRUDの生成に応じて自動的に追加されたテーブルである。テーブル2102は、テーブル2101(CRUD_T01)の詳細を表示したものであり、カラムとしてIDの他に、入力フォーム2で選択されたUI部品のUI部品IDをカラム名としたカラムがあることがわかる。これらのカラムについて、データ型などのプロパティも、入力フォーム2で選択されたUI部品のプロパティに応じて自動的に設定されている。 Figure 21 (a) shows an example of a database table automatically added by the processing of S1913. This display example is an example displayed when the database button 516 in the main menu area is pressed. That is, Figure 21 (a) is one of the screens related to the database displayed in S1214 of Figure 12. Of the table list (TABLES) included in the database "sample" displayed in the submenu area, table 2101 (CRUD_T01) is a table that was automatically added in response to the generation of the CRUD. Table 2102 displays the details of table 2101 (CRUD_T01), and it can be seen that in addition to the ID column, there is a column named after the UI part ID of the UI part selected in input form 2. For these columns, properties such as data type are also automatically set according to the properties of the UI part selected in input form 2.

図21(b)に、図19のS1913の処理で自動的に配置されたCRUDボタンであるUI部品2051のアクションボードを表示した場合の表示例を示す。すなわち、このアクションボードは、指定UI部品をUI部品2051とした場合に図8で前述したS801で表示されるものである。アクションボード910には、開発者がプログラミング言語でのアクションの記述を行っていない状態で、初期値として図21(b)のようなアクションの文字列がプログラミング言語(JavaScript)で記述された状態で表示される。言い換えれば、アクションボード910には、開発者が当該アクションに関してプログラム言語でのソースコードの記述を行っていない状態で、初期値として図21(b)のような、アクションを定義したプログラミング言語でのソースコードが表示される。ユーザーは、このように自動的に定義されたアクションを前述したS802~S808の処理によって編集可能である。すなわち、自動的に定義されたアクションの文字列をベースとして、これを一部流用し、一部改変または文字列を追加するようにプログラミング言語を入力することができる。すなわち、自動的に定義されたアクションの文字列に対する修正操作を受け付けることができる。このように、自動的に生成されて表示されたアクションのプログラミング言語をベースとすることで、開発者がゼロからプログラミング言語でアクションを記述するよりも、少ない操作手数(テキスト入力量)で簡単にアクションを設定することができる。また、自動的に生成されたアクションをそのまま使うことなく修正を加えてカスタマイズできるため、より細かい要望に応えるアクションを生成可能である。 21(b) shows an example of a display when the action board of the UI part 2051, which is a CRUD button automatically arranged in the process of S1913 in FIG. 19, is displayed in S801 described above in FIG. 8 when the specified UI part is the UI part 2051. The action board 910 displays the character string of the action as shown in FIG. 21(b) written in a programming language (JavaScript) as the initial value when the developer has not written the action in a programming language. In other words, the action board 910 displays the source code in the programming language that defines the action as shown in FIG. 21(b) as the initial value when the developer has not written the source code for the action in a programming language. The user can edit such an automatically defined action by the process of S802 to S808 described above. That is, the user can input a programming language to partially reuse the character string of the automatically defined action and partially modify or add a character string. That is, the user can accept a modification operation for the character string of the automatically defined action. In this way, by using the programming language of the automatically generated and displayed actions as a base, developers can easily set up actions with fewer steps (amount of text input) than if they were to write the action from scratch in a programming language. Also, because automatically generated actions can be customized by making modifications rather than using them as is, it is possible to generate actions that meet more detailed requests.

また、図21(b)において、サブメニュー領域の関数一覧920には、予め用意された関数の選択肢として関数2121と関数2122が表示される。関数2121と関数2122は図19のS1913の処理で自動的に生成された関数である。 In addition, in FIG. 21(b), function list 920 in the submenu area displays function 2121 and function 2122 as options for pre-prepared functions. Function 2121 and function 2122 are functions that were automatically generated in the process of S1913 in FIG. 19.

図21(c)に、関数一覧920から関数2121を選択して関数の設定画面を表示した場合の表示例を示す。関数2121はSQL関数であり、SQL関数設定画面が表示される。SQL関数設定画面は図10(a)で前述したものと同じ構成であるため、図21(c)において、図10(a)と同じ設定欄/入力欄には同じ符号を付して説明を省略する。設定欄951には、関数名として「SQL_Save」が自動的に設定されている。また、設定欄953には、SQL文が予め入力されている。このSQL文のうち、「INSERT INTO」との文字列は、データベースへの処理種別が「INSERT」であり、テーブルに新たに行を追加する処理であることを示している。また、「sample.CRUD_T01」との文字列は、処理対象となるデータベースが「sample」であり、テーブルが「CRUD_T01」であることを示している。これは、入力フォーム3に入力された内容が反映されたものである。また、それ以降の文字列は追加する行に含まれるカラムの値を示しており、入力フォーム1に入力された内容が反映されたものである。設定欄951、953の内容は、自動的に生成されたものをベースとして、前述した図8のS813~S820の処理によって開発者が編集(修正、削除、加筆、カスタマイズ)可能である。 Figure 21 (c) shows an example of a display when a function 2121 is selected from the function list 920 and a function setting screen is displayed. Function 2121 is an SQL function, and an SQL function setting screen is displayed. Since the SQL function setting screen has the same configuration as that described above in Figure 10 (a), in Figure 21 (c), the same setting/input fields as those in Figure 10 (a) are assigned the same reference numerals and their explanations are omitted. In the setting field 951, "SQL_Save" is automatically set as the function name. In addition, in the setting field 953, an SQL statement is input in advance. In this SQL statement, the character string "INSERT INTO" indicates that the processing type for the database is "INSERT" and that this is a process for adding a new row to the table. In addition, the character string "sample.CRUD_T01" indicates that the database to be processed is "sample" and the table is "CRUD_T01". This reflects the content entered into Input Form 3. The subsequent character strings indicate the column values contained in the row to be added, and reflect the content entered into Input Form 1. The content of setting fields 951 and 953 can be edited (modified, deleted, added to, customized) by the developer using the processes in S813 to S820 in FIG. 8 described above, based on what was automatically generated.

図21(d)に、関数一覧920から関数2122を選択して関数の設定画面を表示した場合の表示例を示す。関数2122はSQL関数であり、SQL関数設定画面が表示される。SQL関数設定画面は図10(a)で前述したものと同じ構成であるため、図21(d)において、図10(a)と同じ設定欄/入力欄には同じ符号を付して説明を省略する。設定欄951には、関数名として「SQL_Update」が自動的に設定されている。また、設定欄953には、SQL文が予め入力されている。このSQL文のうち、「UPDATE」との文字列は、データベースへの処理種別が「UPDATE」であり、テーブルの既存の行の値を更新する処理であることを示している。また、「sample.CRUD_T01」との文字列は、処理対象となるデータベースが「sample」であり、テーブルが「CRUD_T01」であることを示している。これは、入力フォーム3に入力された内容が反映されたものである。また、それ以降の文字列は更新するカラムの値を示しており、入力フォーム1に入力された内容が反映されたものである。設定欄951、953の内容は、自動的に生成されたものをベースとして、前述した図8のS813~S820の処理によって開発者が編集(修正、削除、加筆、カスタマイズ)可能である。 Figure 21 (d) shows an example of a display when function 2122 is selected from function list 920 and the function setting screen is displayed. Function 2122 is an SQL function, and an SQL function setting screen is displayed. Since the SQL function setting screen has the same configuration as that described above in Figure 10 (a), in Figure 21 (d), the same setting/input fields as those in Figure 10 (a) are assigned the same reference numerals and their explanations are omitted. In the setting field 951, "SQL_Update" is automatically set as the function name. In addition, in the setting field 953, an SQL statement is input in advance. In this SQL statement, the character string "UPDATE" indicates that the processing type for the database is "UPDATE" and that the processing is a process for updating the value of an existing row in the table. In addition, the character string "sample.CRUD_T01" indicates that the database to be processed is "sample" and the table is "CRUD_T01". This reflects the content entered into Input Form 3. The character string that follows indicates the value of the column to be updated, and reflects the content entered into Input Form 1. The content of setting fields 951 and 953 can be edited (modified, deleted, added to, customized) by the developer using the processing of S813 to S820 in FIG. 8 described above, based on what was automatically generated.

図21(b)のアクションボード910に図示した、自動的に生成されるアクションの内容について詳細に説明する。図21(b)のアクションボード910に記述されたJavaScriptの文字列の各行は、下記の意味である。
1行目…paramsという変数名で、2~5行目の値を含む値のセットを定義する。
2行目…IDとなる数字の定義。通し番号となる。
3~5行目…入力フォーム1で選択されたUI部品に入力されている値を取得する。なお、値を取得するという意味で、「=」の右側に「$ui.UI部品ID.対象となる情報の種別」が記載されているが、この記述方式自体はJavaScriptの標準の記載方法ではなく、本システム独自のものである。これについて詳細は後述する。
6行目…2~5行目で定義したparamsを引数として関数SQLUpdateを実行する。すなわち、入力フォーム1で選択されたUI部品に入力されている値で、入力フォーム3で設定したデータベースのテーブルを更新する。
7行目…Updateによって影響のある行(Row)を取得する。
8行目…7行目で取得できた行があるか判定する。すなわち、Updateできた行があるか判定する。
9行目…8行目が真であれば、「Successfully Updated」(更新できました)と表示する。
10行目…NextUIとしてUI画面IDが「crud-newui-UI01」であるUI画面へ遷移する。
12行目…7行目で取得できた行が0であるか判定する。これが真となる場合には、今回取得したparamsに対応する既存の行が無かったことを意味するため、新しい行を追加して新規登録することになる。
13行目…12行目が真である場合に、2~5行目で定義したparamsを引数として関数SQLSaveを実行する。すなわち、入力フォーム1で選択されたUI部品に入力されている値で、入力フォーム3で設定したデータベースのテーブルに行を追加して新規保存を行う。
14行目…13行目での新規保存で影響のあった行(すなわち、追加した行)を取得する。
15行目…14行目で取得できた行があるかを判定する。すなわち、行を追加しての新規登録が成功したかを判定する。
16行目…15行目が真であれば、「Successfully Inserted」(追加が成功した)と表示する。
17行目…NextUIとしてUI画面IDが「crud-newui-UI01」であるUI画面へ遷移する。
19、20行目…8行目も12行目も偽である場合は、「Insertion Failed」(失敗した)と表示する。
The contents of the automatically generated actions shown in the action board 910 in Fig. 21B will be described in detail below. Each line of the JavaScript character string described in the action board 910 in Fig. 21B has the following meaning.
Line 1: defines a variable named params, with a value set including the values in lines 2 to 5.
Line 2: Defines the ID number. This will be a serial number.
Lines 3-5: Obtain the value entered in the UI part selected in input form 1. Note that "$ui.UI part ID.Target information type" is written to the right of "=" to indicate that a value is to be obtained, but this description method itself is not a standard method for JavaScript, but is unique to this system. More details on this will be provided later.
Line 6: Executes the function SQLUpdate with the params defined in lines 2 to 5 as arguments. That is, it updates the database table set in input form 3 with the values entered in the UI parts selected in input form 1.
Line 7: Obtain the row affected by the Update.
Line 8: Determine whether any rows were obtained in line 7. In other words, determine whether any rows were updated.
Line 9: If line 8 is true, display "Successfully Updated."
Line 10: Transition to a UI screen with a UI screen ID of "crud-newui-UI01" as NextUI.
Line 12: Determines whether the number of rows retrieved in line 7 is 0. If this is true, it means that there is no existing row that corresponds to the params retrieved this time, so a new row will be added and newly registered.
Line 13: If line 12 is true, executes the function SQLSave with the params defined in lines 2 to 5 as arguments. In other words, adds a row to the database table set in input form 3 with the values entered in the UI parts selected in input form 1, and saves the row as a new row.
Line 14: Obtain the lines affected by the new save in line 13 (i.e., the added lines).
Line 15: Determines whether any rows were obtained in line 14. In other words, determines whether the new registration by adding a row was successful.
Line 16: If line 15 is true, displays "Successfully Inserted."
Line 17: Transition to the UI screen with the UI screen ID "crud-newui-UI01" as NextUI.
Lines 19, 20...If lines 8 and 12 are both false, display "Insertion Failed."

このように自動的に生成され、開発者(ユーザー)が修正できるようにプログラミング言語でアクションボードに提示された内容に対して、開発者(ユーザー)は、例えば、下記のようなカスタマイズを行うことができる。
・メッセージの内容(アクションの実行に応じて表示されるメッセージ)を変更したいので、9行目、16行目、20行目のメッセージ内容だけ書き換える。
・SAVEボタンの押下に応じて表示する画面(アクションの実行に応じて表示される画面)は自分で作ったものにしたいので、10行目、17行目のNextUIのUI画面IDの部分(crud-newui-UI01)だけ書き換える。
・年齢を登録しない運用に変更したいので5行目を削除する。すなわち、アクションの実行の際に情報を取得及び/または出力する対象となるコンポーネントを変更する。
・複数のデータベースに登録したいので、SQL関数(創作関数)を新たに作成(追加)し、書き加える。SQL関数を新たに作成する際には、設定欄953には、自動的に作成された「SQLSave」や「SQLUpdate」のSQL文をコピー&ペーストし、対象となるデータベースとテーブルの部分だけ修正する。
The content is automatically generated in this way and presented on the action board in a programming language so that the developer (user) can modify it. The developer (user) can customize it, for example, as follows:
・Since we want to change the message content (the message that is displayed when an action is executed), we will only rewrite the message content on lines 9, 16, and 20.
- Since we want the screen that is displayed when the SAVE button is pressed (the screen that is displayed when an action is executed) to be one that we created ourselves, we only need to rewrite the UI screen ID portion of NextUI on lines 10 and 17 (crud-newui-UI01).
・Since we want to change the operation so that age is not registered, we will delete line 5. In other words, we will change the component that obtains and/or outputs information when the action is executed.
Since you want to register it in multiple databases, create (add) a new SQL function (original function) and write it in. When creating a new SQL function, copy and paste the automatically created SQL statements for "SQLSave" and "SQLUpdate" into the setting field 953, and modify only the target database and table parts.

このように、プログラミング言語でのアクションの記述が全くない状態から開発者が所望するCRUDボタンのアクションを作成するよりは、自動的に生成されたものからカスタマイズする方が、大きく操作手数を削減することができる。また、自由にカスタマイズできるので、作成できるアクションの内容の自由度も大きい。本実施形態によれば、開発者(ユーザー)がプログラム言語での記述をすることなく定義されたアクション(入力フォーム1~3へ入力する操作群に基づいて定義されたアクション)を、より柔軟に修正して利用できる。 In this way, customizing an automatically generated action can greatly reduce the amount of work required, rather than creating the developer's desired CRUD button action from a state where no action description in a programming language is required. In addition, since customization can be freely performed, there is a large degree of freedom in the content of the actions that can be created. According to this embodiment, actions defined without the developer (user) having to write them in a programming language (actions defined based on the group of operations entered into input forms 1 to 3) can be modified and used more flexibly.

<開発者アカウント登録処理>
図22(a)に、開発者用端末100における開発者アカウント登録処理のフローチャートを示す。この処理は、前述した図3のS306の詳細フローチャートである。
<Developer account registration process>
22A shows a flowchart of the developer account registration process on the developer terminal 100. This process is a detailed flowchart of S306 in FIG.

S2201では、開発者用端末100は、新規に登録するアカウント情報として、メールアドレス、氏、名の入力を受け付ける入力欄をディスプレイ105に表示し、ユーザー(開発者)からの各入力欄への入力を受け付ける。 In S2201, the developer terminal 100 displays input fields on the display 105 to accept input of an email address, a last name, and a first name as newly registered account information, and accepts input from the user (developer) into each input field.

S2202では、開発者用端末100は、S2201で入力されたアカウント情報と、当該アカウント情報を新規に登録するリクエストである登録要求とを、開発環境300に送信する。 In S2202, the developer terminal 100 sends the account information entered in S2201 and a registration request to newly register the account information to the development environment 300.

S2203では、開発者用端末100は、ワンタイムパスワードの入力を受け付ける受付画面をディスプレイ105に表示し、ユーザー(開発者)からのワンタイムパスワードの入力を受け付ける。開発環境300にアカウント情報の登録依頼を送信すると、開発環境300から、アカウント情報に含まれるメールアドレスに対し、当該メールアドレスが有効であることを確認するためにワンタイムパスワードが送られてくる。開発者は、そのメールアドレスの所有者であるため、そのメールアドレスに送られてきたワンタイムパスワードを見て、ディスプレイ105に表示されたワンタイムパスワードの受付画面へ入力する。 In S2203, the developer terminal 100 displays a reception screen on the display 105 for receiving input of a one-time password, and receives input of the one-time password from the user (developer). When a request to register account information is sent to the development environment 300, the development environment 300 sends a one-time password to the email address included in the account information to confirm that the email address is valid. As the developer is the owner of that email address, he or she views the one-time password sent to that email address and enters it into the one-time password reception screen displayed on the display 105.

S2204では、開発者用端末100は、S2203で入力されたワンタイムパスワードを開発環境300に送信する。 In S2204, the developer terminal 100 sends the one-time password entered in S2203 to the development environment 300.

S2205では、開発者用端末100は、開発環境300からログインOK通知を受信したか否かを判定する。ログインOK通知を受信した場合はS2209に進み、そうでない場合はS2206に進む。 In S2205, the developer terminal 100 determines whether or not a login OK notification has been received from the development environment 300. If a login OK notification has been received, the process proceeds to S2209; if not, the process proceeds to S2206.

S2206では、開発者用端末100は、ワンタイムパスワードの再送を開発環境300に要求するための再送指示画面を表示する。 In S2206, the developer terminal 100 displays a resend instruction screen to request the development environment 300 to resend the one-time password.

S2207では、開発者用端末100は、開発者(ユーザー)からのワンタイムパスワードの再送指示操作があったか否かを判定する。再送指示操作があった場合にS2208に進む。再送指示操作がない場合に開発者用端末100は再送指示操作があるまで待機する。 In S2207, the developer terminal 100 determines whether or not the developer (user) has issued a command to resend the one-time password. If a command to resend has been issued, the process proceeds to S2208. If a command to resend has not been issued, the developer terminal 100 waits until a command to resend is issued.

S2208では、開発者用端末100は、開発環境300に、ワンタイムパスワードの再送要求を送信する。 In S2208, the developer terminal 100 sends a request to resend the one-time password to the development environment 300.

S2209では、開発者用端末100は、パスワードの登録画面を開発者用端末100に送信し、パスワードの登録(パスワードとしたいデータの入力)を受け付ける。 In S2209, the developer terminal 100 sends a password registration screen to the developer terminal 100 and accepts password registration (input of data to be used as the password).

S2210では、開発者用端末100では、S2209で受けつけたパスワードとしたいデータを開発環境300に送信する。 In S2210, the developer terminal 100 sends the data to be used as the password received in S2209 to the development environment 300.

図22(b)に、開発環境300における開発者アカウント登録処理のフローチャートを示す。この処理は、図22(a)の開発者用端末100における開発者アカウント登録処理と連動する開発環境300側の処理である。 Figure 22 (b) shows a flowchart of the developer account registration process in the development environment 300. This process is a process on the development environment 300 side that is linked to the developer account registration process in the developer terminal 100 in Figure 22 (a).

S2221では、開発環境300は、アカウント情報と、当該アカウント情報を新規に登録するリクエストである登録要求(登録指示)を開発者用端末100から受信したか否かを判定する。このアカウント情報と登録要求は図22(a)のS2202で開発者用端末100から送信されたものである。アカウント情報と、当該アカウント情報を新規に登録するリクエストである登録要求を開発者用端末100から受信した場合はS2222に進み、そうでない場合は受信するまで待機する。 In S2221, the development environment 300 determines whether or not it has received account information and a registration request (registration instruction) that is a request to newly register the account information from the developer terminal 100. This account information and registration request were sent from the developer terminal 100 in S2202 of FIG. 22(a). If it has received account information and a registration request that is a request to newly register the account information from the developer terminal 100, it proceeds to S2222, and if not, it waits until it is received.

S2222では、開発環境300は、開発者情報301に行を追加し、S2221で受信したアカウント情報を記録する。また、この行のカラム「Verify」の値は「unconfirmed」を記録する。開発者情報301にあるカラムは、図14(a)に示したものである。開発者情報301の1行分が1人分のアカウント情報であり、同じ行に記録された各カラム(列)の情報は互いに同じ開発者のアカウント情報として関連付けて記録されたものである。 In S2222, the development environment 300 adds a row to the developer information 301 and records the account information received in S2221. In addition, the value of the column "Verify" in this row is recorded as "unconfirmed". The columns in the developer information 301 are as shown in FIG. 14(a). One row of the developer information 301 is the account information for one person, and the information in each column recorded in the same row is recorded in association with each other as account information for the same developer.

S2223では、開発環境300は、外部のワンタイムパスワード発行システム(不図示)に対して、S2221で受信したアカウント情報に含まれるメールアドレスを送信先としてワンタイムパスワードの発行と送信をするように指示を行う。これによって、外部のワンタイムパスワード発行システムから、開発者のメールアドレス宛にワンタイムパスワードが送信される。なお、本実施形態では外部のワンタイムパスワード発行システムにワンタイムパスワードの送信を指示するものとしたが、開発環境300自体がワンタイムパスワードを送信するものとしても良い。 In S2223, the development environment 300 instructs an external one-time password issuing system (not shown) to issue and send a one-time password to the email address included in the account information received in S2221. As a result, the one-time password is sent from the external one-time password issuing system to the developer's email address. Note that, although in this embodiment the external one-time password issuing system is instructed to send the one-time password, the development environment 300 itself may send the one-time password.

S2224では、開発環境300は、開発者用端末100からワンタイムパスワードを受信したか否かを判定する。ここで受信するワンタイムパスワードは、図22(a)のS2204で開発者用端末100から送信されたものである。ワンタイムパスワードを受信した場合にはS2225に進み、そうでない場合にはS2224で待機する。 In S2224, the development environment 300 determines whether or not a one-time password has been received from the developer terminal 100. The one-time password received here is the one sent from the developer terminal 100 in S2204 of FIG. 22(a). If a one-time password has been received, the process proceeds to S2225; if not, the process waits at S2224.

S2225では、開発環境300は、外部のワンタイムパスワード発行システムに対して、S2225で受信したワンタイムパスワードを送信し、発行されたワンタイムパスワードと整合するかどうかの確認指示を送信する。すなわち、ワンタイムパスワードの照合を指示する。 In S2225, the development environment 300 sends the one-time password received in S2225 to the external one-time password issuing system, and sends a confirmation instruction to check whether it matches the issued one-time password. In other words, it issues an instruction to verify the one-time password.

S2226では、開発環境300は、外部のワンタイムパスワード発行システムから、正しいワンタイムパスワードであった旨(照合OKであった旨)の通知を受信したか否かを判定する。正であった場合(照合OKであった場合)にはS2228に進み、そうでない場合にはS227へ進む。 In S2226, the development environment 300 determines whether or not a notification has been received from the external one-time password issuing system that the one-time password is correct (verification was OK). If it is correct (verification was OK), the process proceeds to S2228, and if not, the process proceeds to S227.

S2227では、開発環境300は、開発者用端末100から、ワンタイムパスワードの再送要求を受信したか否かを判定する。ここで受信する要求は、図22(a)のS2208で開発者用端末100から送信されたものである。ワンタイムパスワードの再送要求を受信した場合はS2223へ進み、そうでない場合はS2227で待機する。 In S2227, the development environment 300 determines whether or not a request to resend the one-time password has been received from the developer terminal 100. The request received here is the one sent from the developer terminal 100 in S2208 of FIG. 22(a). If a request to resend the one-time password has been received, the process proceeds to S2223; if not, the process waits in S2227.

S2228では、開発環境300は、S2222で開発者情報301に追加したアカウントを有効化する。具体的には、S2222で開発者情報301に追加したアカウント情報のうち、カラム「Verify」の値を「confirmed」に変更する。カラム「Verify」の値が「confirmed」であるアカウント情報は、登録されたメールアドレスがワンタイムパスワードの照合によって有効であることが確認されたものであり、登録済みの有効なアカウントとして見なされる。なお、本実施形態ではメールアドレスによる認証を行うが、アカウント情報として電話番号やSNSアカウントなどの開発者への他の連絡先が登録されるようにした場合には、他の連絡先を用いた認証としてもよい。 In S2228, the development environment 300 activates the account added to the developer information 301 in S2222. Specifically, among the account information added to the developer information 301 in S2222, the value of the column "Verify" is changed to "confirmed." Account information with the value of the column "Verify" being "confirmed" is one in which the registered email address has been confirmed to be valid by matching the one-time password, and the account is considered to be a registered valid account. Note that in this embodiment, authentication is performed using an email address, but if other contact information for the developer, such as a phone number or SNS account, is registered as account information, authentication may be performed using the other contact information.

S2229では、開発環境300は、開発者情報301に登録された有効なアカウント数(「Verify」の値が「confirmed」であるアカウントの数)が予め定められた閾値2(例えば9000)より大きいかどうかを判定する。有効なアカウント数が閾値2より大きければS2230に進み、有効なアカウント数が閾値2以下であればS2232に進む。 In S2229, the development environment 300 determines whether the number of valid accounts registered in the developer information 301 (the number of accounts whose "Verify" value is "confirmed") is greater than a predetermined threshold 2 (e.g., 9,000). If the number of valid accounts is greater than threshold 2, the process proceeds to S2230, and if the number of valid accounts is equal to or less than threshold 2, the process proceeds to S2232.

S2230は、開発環境300は、マルチテナント実行環境410にDBインスタンスを追加済みであるか否かを判定する。DBインスタンスを追加済みであればS2232に進み、追加済みでなければS2231に進む。 In S2230, the development environment 300 determines whether a DB instance has been added to the multitenant execution environment 410. If a DB instance has been added, the process proceeds to S2232; if not, the process proceeds to S2231.

S2231では、開発環境300は、マルチテナント実行環境410のDBセット430に、新たなDBインスタンスを追加する。DBインスタンスの新規追加(新規作成)には数十分の処理時間を要するため、有効アカウント数が後述する閾値1(>閾値2)を超えて接続先のDBインスタンスを変更する前に、閾値1を超えた時点で事前に準備しておく。このようにすることで、接続先のDBインスタンスの変更があった際に、遅延なく、すぐに新しいDBインスタンスに接続できる。 In S2231, the development environment 300 adds a new DB instance to the DB set 430 of the multitenant execution environment 410. Since adding (creating) a new DB instance takes several tens of minutes of processing time, preparations are made in advance when the number of valid accounts exceeds threshold 1 (> threshold 2) described below, before changing the connected DB instance. In this way, when the connected DB instance is changed, it is possible to connect to the new DB instance immediately without delay.

S2232では、開発環境300は、開発者情報301に登録された有効なアカウント数(「Verify」の値が「confirmed」であるアカウントの数)が予め定められた閾値1(閾値2より大きい値で、例えば開発者用端末10000)より大きいかどうかを判定する。有効なアカウント数が閾値1より大きければS2233に進み、有効なアカウント数が閾値1以下であればS2236に進む。 In S2232, the development environment 300 determines whether the number of valid accounts registered in the developer information 301 (the number of accounts whose "Verify" value is "confirmed") is greater than a predetermined threshold 1 (a value greater than threshold 2, for example, the developer terminal 10000). If the number of valid accounts is greater than threshold 1, the process proceeds to S2233, and if the number of valid accounts is equal to or less than threshold 1, the process proceeds to S2236.

S2233では、開発環境300は、新たに追加されるアカウント情報に割り当てるマルチテナント実行環境のDBインスタンス名としてメモリ304に保持していたDBインスタンス名を、S2231で追加しておいた新たなDBインスタンスのDBインスタンス名に更新済であるか否かを判定する。更新済みである場合にはS2236へ進み、そうでない場合にはS2234へ進む。 In S2233, the development environment 300 determines whether the DB instance name stored in memory 304 as the DB instance name of the multitenant execution environment to be assigned to the newly added account information has been updated to the DB instance name of the new DB instance added in S2231. If it has been updated, proceed to S2236; if not, proceed to S2234.

S2234では、開発環境300は、新たに追加されるアカウント情報に割り当てるマルチテナント実行環境のDBインスタンス名としてメモリ304に保持していたDBインスタンス名を、S2231で追加しておいた新たなDBインスタンスのDBインスタンス名に更新する。DBインスタンス名は、データベース環境の識別子である。これによって、例えば、これ以前に追加されたアカウントには「DBインスタンス名1」を割当ててていたのが、これ以降に追加されるアカウントには「DBインスタンス名2」が割り当てられるようになる。1つのDBインスタンス(データベース環境)に接続するアカウント数が多くなると、1度にデータベースにアクセスされる数が増加し、アクセスが集中した場合にレスポンスが低下するなどのパフォーマンスの低下を招くことがある。これに対し、S2233の処理によって、アカウント数が閾値1を超えた場合には、それ以降に登録されたアカウントは、それ以前とは異なる新たなDBインスタンス(データベース環境)へ接続するように設定されるため、1つのDBインスタンスを使用する開発者の数が過大となりアクセスが集中してしまう可能性を低減することができる。従って、データベースへのアクセスに関してレスポンスが低下するなどのパフォーマンスが低下する可能性を低減することができる。 In S2234, the development environment 300 updates the DB instance name stored in the memory 304 as the DB instance name of the multitenant execution environment to be assigned to the newly added account information to the DB instance name of the new DB instance added in S2231. The DB instance name is an identifier of the database environment. As a result, for example, "DB instance name 1" was assigned to the account added before, but "DB instance name 2" is assigned to the account added after this. If the number of accounts connected to one DB instance (database environment) increases, the number of times the database is accessed at one time increases, and if access is concentrated, this may lead to a decrease in performance, such as a decrease in response. In contrast, if the number of accounts exceeds threshold 1 by the processing of S2233, accounts registered thereafter are set to connect to a new DB instance (database environment) different from the previous one, so that the possibility of the number of developers using one DB instance becoming excessive and access being concentrated can be reduced. Therefore, the possibility of a decrease in performance, such as a decrease in response to access to the database, can be reduced.

S2235では、開発環境300は、閾値1=閾値1+閾値1に更新する。また、閾値2=閾値2+閾値1に更新する。これによって、例えば、更新前の閾値1が開発者用端末10000、更新前の閾値2が9000であった場合には、閾値1=20000、閾値2=19000となる。すなわち、更に開発者用端末10000アカウント増える度(閾値1の数だけ有効なアカウント数が増える度)に、S2231の処理とS2234の処理が行われる。 In S2235, the development environment 300 updates threshold 1 to threshold 1 = threshold 1 + threshold 1. Also, threshold 2 is updated to threshold 2 + threshold 1. As a result, if threshold 1 before the update was 10,000 developer devices and threshold 2 before the update was 9,000, threshold 1 = 20,000 and threshold 2 = 19,000. In other words, each time the number of developer device 10,000 accounts increases (each time the number of valid accounts increases by the number of threshold 1), the processes of S2231 and S2234 are performed.

S2236では、開発環境300は、S2222で追加されたアカウント情報(今回追加されたアカウント)の接続先DBインスタンスとしてメモリ304に保持されたDBインスタンス名を割当てる。より具体的には、開発者情報301のうち、今回追加されたアカウントの行の、接続先DBインスタンス名を示すカラム(図14(a)の一番右の列)に、接続先DBインスタンスとしてメモリ304に保持されたDBインスタンス名を記録する。S2232~S2235で説明した処理によって、例えば、閾値1が開発者用端末10000で、今回追加されたアカウントが9999個目の有効なアカウントであれば「DBインスタンス名1」が記録され。今回追加されたアカウントが開発者用端末10001個目の有効なアカウントであれば「DBインスタンス名2」が記録される。 In S2236, the development environment 300 assigns the DB instance name stored in memory 304 as the destination DB instance for the account information added in S2222 (the currently added account). More specifically, the DB instance name stored in memory 304 as the destination DB instance is recorded in the column indicating the destination DB instance name (the rightmost column in FIG. 14(a)) of the row of the currently added account in the developer information 301. By the process described in S2232 to S2235, for example, if threshold 1 is developer terminal 10000 and the currently added account is the 9999th valid account, "DB instance name 1" is recorded. If the currently added account is developer terminal 10001's first valid account, "DB instance name 2" is recorded.

S2237では、開発環境300は、開発者用端末100に、ログインOK通知を送信する。ここで送信したログインOK通知が、前述したS2205において開発者用端末100によって受信される。 In S2237, the development environment 300 sends a login OK notification to the developer terminal 100. The login OK notification sent here is received by the developer terminal 100 in S2205 described above.

S2238では、開発環境300は、前述したS2210で開発者用端末100から送信されたパスワードとしたいデータを受信し、今回追加したアカウント情報のパスワードとして登録する。より詳しくは、開発者情報301のうち、今回追加されたアカウントの行の、パスワードのカラムに記録する。 In S2238, the development environment 300 receives the data to be used as the password sent from the developer terminal 100 in S2210 described above, and registers it as the password for the newly added account information. More specifically, it records it in the password column of the row for the newly added account in the developer information 301.

図23(a)に、マルチテナント実行環境410にあるDBセット430の詳細を示す。DBセット430には、最初は1つまたは複数である固定数のDB環境(DBインスタンス)が用意されている。本実施形態では固定数=1、つまり最初はDBインスタンス1(2310)だけが用意されているものとする。DBインスタンス1の中には、開発者情報DB2311と、開発者毎のDBが含まれる。開発者情報DB2311には、各開発者(各アカウント)に用意されるデータベースがどれであるかを示している。例えば、開発者AのDB情報2312は、開発者AのDBがDB1である、という対応付けを示す情報である。開発者毎のDBにはDB1(2314)、DB2(2315)、DB3(2316)…とあり、開発者情報301に有効なアカウントが登録されるたびに増える。ただし上限は閾値1と同じ数までであり、閾値1が開発者用端末10000の場合、DBmax(2317)が開発者用端末10000個目のDBであり、それ以降は別のDBインスタンスにDBが作られる。発明者毎のDBの中にはさらに1以上のテーブルが含まれる。例えばDB1(2314)にはテーブル1、テーブル2、…と、複数のテーブルが含まれる。なお、各DBインスタンス(データベース環境)は、書き込み可能なデータベースインスタンスである。 Figure 23 (a) shows details of DB set 430 in multi-tenant execution environment 410. DB set 430 initially has a fixed number of DB environments (DB instances), which may be one or more. In this embodiment, the fixed number is 1, meaning that initially only DB instance 1 (2310) is prepared. DB instance 1 includes developer information DB 2311 and DBs for each developer. Developer information DB 2311 indicates which database is prepared for each developer (each account). For example, DB information 2312 for developer A is information indicating the correspondence that DB for developer A is DB1. DBs for each developer include DB1 (2314), DB2 (2315), DB3 (2316), etc., and the number increases each time a valid account is registered in developer information 301. However, the upper limit is the same as threshold 1, and if threshold 1 is 10,000 developer devices, DBmax (2317) is the DB on the 10,000th developer device, and subsequent DBs are created in different DB instances. Each inventor's DB further includes one or more tables. For example, DB1 (2314) includes multiple tables, such as table 1, table 2, ... Each DB instance (database environment) is a writable database instance.

S2231の処理によって、DBインスタンス1のDBの数が上限(閾値1)に達する前に、次のDBインスタンス2が生成される。そして、DBインスタンス1にDBmax(2317)まで生成された状態から、更に有効な開発者アカウントが開発者情報301に追加登録された場合、S2232でYesとなり、追加登録された開発者はDBインスタンス2(2320)に接続するように開発者情報301に登録される。そして、DBインスタンス2(2320)にそれ以降追加されたアカウント(開発者)用のDBが生成されていく。なお、DBインスタンス2(2320)に入るDBの数も閾値1まで(通算、閾値1×2まで)であり、それ以降に登録されたアカウントは、同様にして次のDBインスタンスに接続するように制御される。 By processing S2231, the next DB instance 2 is created before the number of DBs in DB instance 1 reaches the upper limit (threshold 1). Then, when DBmax (2317) has been created in DB instance 1, if a further valid developer account is added to developer information 301, S2232 becomes Yes, and the newly added developer is registered in developer information 301 so as to connect to DB instance 2 (2320). Then, DBs for accounts (developers) added thereafter are created in DB instance 2 (2320). Note that the number of DBs that can be stored in DB instance 2 (2320) is also limited to threshold 1 (total, up to threshold 1 x 2), and accounts registered after that are controlled to connect to the next DB instance in a similar manner.

図23(b)に、シングルテナント実行環境のDBセット457の詳細を示す。シングルテナント実行環境は1つのアカウント(1人の開発者)に専用であるため、DBセット457も1つのアカウント(1人の開発者)に専用である。そのため、レスポンスが低下するほどのDBの増加、アクセスの集中が起こる可能性は低い。従って、DBセット457には、DB環境としてはDBインスタンス1(2350)の1つだけが用意される。また、開発者情報DB2351には1アカウント文の情報(例えば開発者AのDB情報2352)だけが記録される。格納されるDBの数にも上限となる閾値は用意されない。また、図22(b)で説明したように、登録されるアカウント情報に関連付けて、接続先となるシングルテナント実行環境のデータベース環境を決定する制御は、開発者の新規アカウントの登録(追加)の際には行わない。 FIG. 23B shows details of DB set 457 of the single tenant execution environment. Since the single tenant execution environment is dedicated to one account (one developer), DB set 457 is also dedicated to one account (one developer). Therefore, the possibility of an increase in DBs or concentration of accesses to the extent that response decreases is low. Therefore, only one DB instance 1 (2350) is prepared as a DB environment in DB set 457. In addition, only information of one account statement (for example, DB information 2352 of developer A) is recorded in developer information DB 2351. There is no upper limit threshold for the number of DBs stored. In addition, as described in FIG. 22B, the control of determining the database environment of the single tenant execution environment to be connected to the account information to be registered is not performed when registering (adding) a new developer account.

<デプロイ処理>
図24(a)に、開発者用端末100におけるデプロイ処理のフローチャートを示す。この処理は、開発者用端末100が実行する処理であり、図4のS426の詳細フローチャートである。
<Deployment process>
24A shows a flowchart of the deployment process in the developer terminal 100. This process is executed by the developer terminal 100, and is a detailed flowchart of S426 in FIG.

図25(a)に、選択中アプリがモバイル用アプリである場合のUIエディタ画面の表示例を示す。キャンバス2501はモバイル用の形状のキャンバスであり、スマートフォンを模した形状としている。デプロイボタン506が押下されると図24(a)の処理が開始される。 Figure 25 (a) shows an example of the UI editor screen when the selected app is a mobile app. Canvas 2501 is a canvas shaped for mobile devices, and is modeled after a smartphone. When the deploy button 506 is pressed, the process in Figure 24 (a) begins.

S2401では、開発者用端末100は、開発環境300に対して、選択中アプリのデプロイを指示する情報を送信する。なお、デプロイ指示を行う前に開発者用端末100のメモリ102に保持された最新の定義情報を開発環境300に保存する保存処理を行ってからデプロイ指示を行うようにしてもよい。 In S2401, the developer terminal 100 transmits information to the development environment 300 instructing the development environment 300 to deploy the selected application. Note that before issuing the deployment instruction, a storage process may be performed to store the latest definition information stored in the memory 102 of the developer terminal 100 in the development environment 300, and then the deployment instruction may be issued.

S2402では、開発者用端末100は、処理待ち画面を表示する。処理待ち画面では、デプロイの処理中であることを示すガイド情報が表示される。 In S2402, the developer terminal 100 displays a waiting screen. The waiting screen displays guide information indicating that the deployment is in progress.

S2403では、開発者用端末100は、開発環境300からデプロイの失敗通知を受信したか否かを判定する。失敗通知を受信した場合にはS2404に進み、そうでない場合にはS2405へ進む。 In S2403, the developer terminal 100 determines whether or not a deployment failure notification has been received from the development environment 300. If a failure notification has been received, the process proceeds to S2404; otherwise, the process proceeds to S2405.

S2404では、開発者用端末100は、デプロイが失敗した旨のエラー表示を行う。デプロイが失敗した場合は、後述のS2407、S2409の処理は行われない。 In S2404, the developer terminal 100 displays an error message indicating that the deployment has failed. If the deployment has failed, the processes of S2407 and S2409 described below are not performed.

S2405では、開発者用端末100は、開発環境300からデプロイの成功通知を受信したか否かを判定する。成功通知には、デプロイ済のアプリにアクセスするためのアクセス先の情報(URL)が含まれる。成功通知を受信した場合にはS2406に進み、そうでない場合にはS2403へ進む。 In S2405, the developer terminal 100 determines whether or not a deployment success notification has been received from the development environment 300. The success notification includes information (URL) of the access destination for accessing the deployed application. If a success notification has been received, the process proceeds to S2406; if not, the process proceeds to S2403.

S2406では、開発者用端末100は、選択中アプリ(デプロイしたアプリ)がモバイル用であるか否かを判定する。モバイル用である場合にはS2408に進み、そうでない場合(すなわちデスクトップ用である場合)にはS2407に進む。モバイル用でない場合には後述するS2409のQRコード(登録商標)の表示は行わない。 In S2406, the developer terminal 100 determines whether the selected app (deployed app) is for mobile use. If it is for mobile use, the process proceeds to S2408, and if it is not (i.e., if it is for desktop use), the process proceeds to S2407. If it is not for mobile use, the QR code (registered trademark) is not displayed in S2409, which will be described later.

S2407では、開発者用端末100は、デプロイ指示を受け付ける前にブラウザソフトで表示していた画面(例えばキャンバスを含むUIエディタ画面)とは異なるブラウザソフトの新しいタブで、成功通知に含まれるデプロイ済みのアプリのURL(実行環境にアクセスするURL)にアクセスした画面を表示する。これによって、開発者は、デプロイが成功したことをすぐに認識することができる。また、新しいタブに、デプロイ済みアプリの認証画面またはイニシャルUIが表示され、新しいタブに対して操作することで、デプロイ済み(実行環境に構築済み)の実際のアプリの表示内容や動作をすぐさま確認・検証することができる。このS2407の処理によって、デプロイ済みのアプリのURL(実行環境にアクセスするURL)にアクセスして行うアプリの実行処理が行われる。アプリの実行処理の詳細については図33(c)または図35(c)のフローチャートを用いて説明する。 In S2407, the developer terminal 100 displays a screen accessed by the URL (URL for accessing the execution environment) of the deployed app included in the success notification in a new tab of the browser software different from the screen (e.g., a UI editor screen including a canvas) that was displayed in the browser software before the deployment instruction was received. This allows the developer to immediately recognize that the deployment was successful. In addition, the authentication screen or initial UI of the deployed app is displayed in the new tab, and the display content and operation of the actual deployed app (built in the execution environment) can be immediately confirmed and verified by operating the new tab. This process of S2407 accesses the URL (URL for accessing the execution environment) of the deployed app to execute the app. Details of the app execution process will be described using the flowchart of FIG. 33(c) or FIG. 35(c).

S2408では、開発者用端末100は、成功通知に含まれるアプリのURLをQRコード化する処理を行う。すなわち、アプリのURLの情報を含むQRコード(2次元コード)を生成する。 In S2408, the developer terminal 100 performs a process of converting the URL of the app included in the success notification into a QR code. In other words, it generates a QR code (two-dimensional code) that includes information about the URL of the app.

S2409では、開発者用端末100は、S2409で生成したQRコードを表示する。QRコードはデプロイの完了(成功)に応じて表示されるため、開発者は、デプロイが成功したタイミングを認識することができる。図25(b)に、S2409でのQRコードの表示例を示す。図25(b)は、図25(a)の状態からデプロイボタン506が押下されてデプロイ指示がなされ、デプロイが成功した場合に遷移する画面の表示例である。モバイル用のキャンバスに重畳して、QRコードダイアログ2510が表示される。QRコードダイアログ2510には、S2408で生成したQRコード2511と、閉じるボタン2512と、新しいタブで開くボタン2513が表示される。なお、QRコード2511が有する情報であるアプリのURLは、UIエディタ画面を表示しているブラウザのアドレスバーに表示されたURL2504(本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLであって、開発者用端末100にアクセスするURL)とは別のURLである。QRコード2511は、デプロイが完了したことによって表示されるものであり、デプロイされたアプリを実行するためのアドレスであって、デプロイがされた場所(実行環境)を示すアクセス先情報である。 In S2409, the developer terminal 100 displays the QR code generated in S2409. The QR code is displayed in response to the completion (success) of the deployment, so the developer can recognize the timing of the successful deployment. Figure 25 (b) shows an example of the QR code displayed in S2409. Figure 25 (b) is an example of the screen to which the transition occurs when the deploy button 506 is pressed from the state of Figure 25 (a) to issue a deployment instruction and the deployment is successful. A QR code dialog 2510 is displayed superimposed on the mobile canvas. The QR code dialog 2510 displays the QR code 2511 generated in S2408, a close button 2512, and an open in new tab button 2513. The URL of the app, which is the information contained in QR code 2511, is a different URL from URL 2504 (the URL of the development system (application development platform) of this embodiment, which is the URL for accessing the developer terminal 100) displayed in the address bar of the browser displaying the UI editor screen. QR code 2511 is displayed when deployment is complete, and is an address for executing the deployed app, and is access destination information indicating the location (execution environment) where the deployment was performed.

開発者(ユーザー)は、開発者用端末100のディスプレイ105に表示されたQRコード2511を、手持ちのスマートフォン(モバイル端末)で撮影して読み取ることで、手持ちのスマートフォンにおいて、デプロイ済みのアプリのURL(実行環境にアクセスするURL)にアクセスした画面を表示させることができる。従って少ない操作手数で容易にデプロイ済みのURLにアクセスすることができる。この場合の手持ちのスマートフォンは、アプリユーザー用端末201として機能する。これによって、手持ちのスマートフォンに、デプロイ済みアプリの認証画面またはイニシャルUIが表示され、手持ちのスマートフォンに対して操作することで、デプロイ済み(実行環境に構築済み)の実際のアプリの表示内容や動作をすぐさま確認・検証することができる。モバイル用アプリの動作を、開発者用端末100ではなくモバイル端末で確認・検証できるため、開発者用端末100で確認・検証するよりも、モバイル用アプリとして好適であるかを確認しやすい。なお、QRコード2511に加えて、あるいは代えて、成功通知に含まれるアプリのURLを読み取れるコード画像として、QRコード以外のコード画像を表示するようにしてもよい。例えば、バーコード、カメレオンコード(登録商標)などでもよい。また、QRコードダイアログ2510に、成功通知に含まれるアプリのURL自体を文字列で表示するようにしてもよい。 The developer (user) can photograph and read the QR code 2511 displayed on the display 105 of the developer terminal 100 with a smartphone (mobile terminal) in hand, thereby displaying a screen on the smartphone in hand that accesses the URL (URL for accessing the execution environment) of the deployed application. Therefore, the deployed URL can be easily accessed with few operations. In this case, the smartphone in hand functions as the application user terminal 201. As a result, the authentication screen or initial UI of the deployed application is displayed on the smartphone in hand, and the display content and operation of the actual application that has been deployed (constructed in the execution environment) can be immediately confirmed and verified by operating the smartphone in hand. Since the operation of the mobile application can be confirmed and verified on the mobile terminal rather than the developer terminal 100, it is easier to confirm whether it is suitable as a mobile application than by confirming and verifying it on the developer terminal 100. In addition to or instead of the QR code 2511, a code image other than a QR code may be displayed as a code image from which the URL of the application included in the success notification can be read. For example, a barcode, a Chameleon Code (registered trademark), etc. may be used. Also, the URL of the app included in the success notification may be displayed as a character string in the QR code dialog 2510.

S2410では、開発者用端末100は、新しいタブで開くボタン2513が押下されたか否かを判定する。新しいタブで開くボタン2513が押下された場合はS2407に進み、そうでない場合にはS2411に進む。 In S2410, the developer terminal 100 determines whether the Open in New Tab button 2513 has been pressed. If the Open in New Tab button 2513 has been pressed, the process proceeds to S2407; if not, the process proceeds to S2411.

S2411では、開発者用端末100は、閉じるボタン2512が押下されたか否かを判定する。閉じるボタン2512が押下された場合はS2412に進み、そうでない場合にはS2410に進む、
S2412では、開発者用端末100は、QRコードダイアログ2510を非表示とし、デプロイの指示の前に表示していた画面に戻る。
In S2411, the developer terminal 100 determines whether or not the close button 2512 has been pressed. If the close button 2512 has been pressed, the process proceeds to S2412; if not, the process proceeds to S2410.
In S2412, the developer terminal 100 hides the QR code dialog 2510 and returns to the screen that was displayed before the deployment instruction was issued.

図24(b)に、デプロイ処理のフローチャートを示す。この処理は、開発環境300が実行する処理であり、図24(a)のS2401で開発者用端末100から送信されたデプロイ指示を開発環境300が受信すると開始される処理である。 Figure 24(b) shows a flowchart of the deployment process. This process is executed by the development environment 300, and is started when the development environment 300 receives the deployment instruction sent from the developer terminal 100 in S2401 of Figure 24(a).

S2421では、開発環境300は、開発環境300のストレージ320のうち、ログインしている開発者の開発者領域に保存されたアプリの定義情報のうち、デプロイ対象となる選択中アプリの定義情報を取得する。ここで取得する定義情報には、後述するUI定義情報(uiDef.json)と、実行環境用プログラム(JavaScript)が含まれる。 In S2421, the development environment 300 acquires the definition information of the selected application to be deployed from the application definition information stored in the developer area of the logged-in developer in the storage 320 of the development environment 300. The definition information acquired here includes UI definition information (uiDef.json) and the execution environment program (JavaScript), which will be described later.

S2422では、開発環境300は、選択中実行環境がマルチテナント実行環境であるか否かを判定する。マルチテナント実行環境である場合にはS2423に進み、そうでない場合(シングルテナント実行環境である場合)にはS2424に進む。 In S2422, the development environment 300 determines whether the selected execution environment is a multi-tenant execution environment. If it is a multi-tenant execution environment, the process proceeds to S2423. If it is not (if it is a single-tenant execution environment), the process proceeds to S2424.

S2423では、開発環境300は、マルチテナント実行環境410のストレージ420のうち、ログインしている開発者の開発者領域(専用フォルダ)に、S2421で取得した選択中アプリの定義情報を記憶させる。より具体的には、S2421で取得した選択中アプリの定義情報をマルチテナント実行環境410に送信し、ログインしている開発者の開発者領域(開発者毎のフォルダ)に記録するようにマルチテナント実行環境410に指示する。この記録が問題なく完了するとデプロイ成功となる。 In S2423, the development environment 300 stores the definition information of the selected app acquired in S2421 in the developer area (dedicated folder) of the logged-in developer in the storage 420 of the multitenant execution environment 410. More specifically, the development environment 300 transmits the definition information of the selected app acquired in S2421 to the multitenant execution environment 410 and instructs the multitenant execution environment 410 to record it in the developer area (folder for each developer) of the logged-in developer. If this recording is completed without any problems, the deployment is successful.

S2424では、開発環境300は、選択中実行環境であるシングルナント実行環境のストレージ(シングルテナント実行環境のバケットの直下のフォルダ)に、S2421で取得した選択中アプリの定義情報を記憶させる。より具体的には、S2421で取得した選択中アプリの定義情報を選択中実行環境であるシングルナント実行環境に送信し、バケットの直下のフォルダに記録するようにマルチテナント実行環境410に指示する。この記録が問題なく完了するとデプロイ成功となる。 In S2424, the development environment 300 stores the definition information of the selected app acquired in S2421 in the storage of the single-tenant execution environment, which is the currently selected execution environment (a folder directly under the bucket of the single-tenant execution environment). More specifically, the development environment 300 instructs the multi-tenant execution environment 410 to send the definition information of the selected app acquired in S2421 to the single-tenant execution environment, which is the currently selected execution environment, and record it in a folder directly under the bucket. If this recording is completed without any problems, the deployment is successful.

S2425では、開発環境300は、デプロイが失敗したか否かを判定する。デプロイが失敗した場合にはS2426に進み、そうでない場合にはS2427に進む。通信障害などで定義情報を実行環境に送信・記録できなかった場合にはデプロイ失敗となることがある。 In S2425, the development environment 300 determines whether the deployment has failed. If the deployment has failed, the process proceeds to S2426, and if not, the process proceeds to S2427. If the definition information cannot be sent and recorded in the execution environment due to a communication failure or the like, the deployment may fail.

S2426では、開発環境300は、デプロイが失敗した旨を示す失敗通知を開発者用端末100に送信する。 In S2426, the development environment 300 sends a failure notification to the developer terminal 100 indicating that the deployment has failed.

S2427では、開発環境300は、デプロイが完了(成功)したか否かを判定する。デプロイが完了した場合にはS2428に進み、そうでない場合にはS2425に進む。 In S2427, the development environment 300 determines whether the deployment has been completed (successful). If the deployment has been completed, the process proceeds to S2428; if not, the process proceeds to S2425.

S2428では、開発環境300は、デプロイ済みのアプリのURLの情報(実行環境にデプロイ済のアプリにアクセスするためのアクセス先の情報)を含むデプロイの成功通知を開発者用端末100に送信する。ここで送信した成功通知が、前述の図24(a)のS2405で開発者用端末100に受信される。 In S2428, the development environment 300 sends a deployment success notification to the developer terminal 100, including information on the URL of the deployed app (information on the access destination for accessing the app deployed to the execution environment). The success notification sent here is received by the developer terminal 100 in S2405 of FIG. 24(a) described above.

<UI画面のテンプレート>
UI画面のテンプレートについて説明する。UI画面には、ユーザーが作成したUI画面とは別に、テンプレ―トとして予め用意されているUI画面(テンプレート画面)がある。テンプレート画面は、ユーザーがそのUI画面に過去にUI部品を配置していなくても、予め定められたアクションが定義された少なくとも1つの雛形コンポーネントが予め決まった位置に配置された画面である。テンプレート画面は、予め用意された情報に対してカスタマイズが可能である。より詳しくは、UIエディタでキャンバスにテンプレート画面を表示させ、図4で説明したUIエディタ処理によって編集が可能である。
<UI screen template>
The UI screen template will be described. In addition to the UI screen created by the user, there is a UI screen (template screen) that is prepared in advance as a template. The template screen is a screen in which at least one template component with a predefined action defined is placed in a predefined position, even if the user has not previously placed a UI part on the UI screen. The template screen can be customized with the predefined information. More specifically, the template screen can be displayed on a canvas in the UI editor, and can be edited by the UI editor process described in FIG. 4.

図26(a)に、サブメニュー領域520にUI画面一覧を選択肢として表示した場合の、テンプレート画面の選択肢の表示例を示す。この表示は、前述した図4のS401の処理によって行われるものである。図26(a)は、複数の種別に分類されたUI画面のうち、AuthenticationUI(認証用のUI画面、認証用画面)のグループに分類されるUI画面の選択肢の一覧を展開して表示した例である。グループ名2610は展開して表示しているグループがAuthenticationUIであることを示している。グループ名2610が押下されるとAuthenticationUIの選択肢の展開を折り畳み、他のグループのグループ名がサブメニュー領域520に表示される。選択肢2611~2622がそれぞれ1つのUI画面の選択肢であり、いずれもテンプレート画面として予め用意されたものである。 Figure 26 (a) shows an example of template screen options displayed when a list of UI screens is displayed as options in submenu area 520. This display is performed by the process of S401 in Figure 4 described above. Figure 26 (a) shows an example of an expanded list of UI screen options classified into the Authentication UI group (authentication UI screen, authentication screen) among UI screens classified into multiple types. Group name 2610 indicates that the expanded and displayed group is Authentication UI. When group name 2610 is pressed, the expanded Authentication UI options are collapsed, and the group names of the other groups are displayed in submenu area 520. Options 2611 to 2622 are each options for one UI screen, and all of them are prepared in advance as template screens.

図26(b)に、選択肢2611を選択して、選択肢2611に対応するテンプレート画面(UI画面)である「Sign in ID」をキャンバス2630に表示した場合の表示例を示す。図26(b)の画面は、選択肢2611が押下されたことに応じて、前述した図4のS404で表示される。キャンバス2630には、雛形部品2631~2634が表示されている。雛形部品2631~2634は、ユーザー(開発者)がサブメニュー領域520のUI部品一覧からドラッグ&ドロップで配置したものではなく、予め表示位置(配置)や色、サイズ、表示内容が定義された雛形のUI部品である。雛形部品2631~2634はそれぞれ以下のようなUI部品である。
・雛形部品2631:Output Fieldで、「Sign In」と表示するためのUI部品。
・雛形部品2632:Inputの種別のTextFieldで、アプリのユーザーネーム(ユーザーID)であるメールアドレスの入力を受け付けるためのUI部品。すなわち、ユーザー特定情報の入力を受け付けるためのUI部品。
・雛形部品2633:ボタンのUI部品で、「CREATE ACCOUNT?」と表示する設定(ラベル)となっている。押下されたことに応じてテンプレート画面の一種である「Sign Up form」の画面(図27(c)に示す画面で、選択肢2614に対応するUI画面)に遷移するというアクションが予め設定されている(予め定義されている)。
・雛形部品2634:ボタンのUI部品で、「NEXT」と表示する設定(ラベル)となっている。押下されたことに応じて、雛形部品2632に入力された値(メールアドレス)を取得するとともに、テンプレ―ト画面の一種である「Sign in Password」の画面(図27(a)に示す画面で、選択肢2612に対応するUI画面)に遷移するというアクションが予め定められている(予め定義されている)。
Fig. 26(b) shows a display example when option 2611 is selected and "Sign in ID", which is the template screen (UI screen) corresponding to option 2611, is displayed on canvas 2630. The screen of Fig. 26(b) is displayed in S404 of Fig. 4 described above in response to pressing of option 2611. Template components 2631 to 2634 are displayed on canvas 2630. Template components 2631 to 2634 are not placed by the user (developer) by dragging and dropping from the UI component list in submenu area 520, but are template UI components whose display position (placement), color, size, and display contents are defined in advance. Template components 2631 to 2634 are UI components as follows:
Template component 2631: A UI component for displaying "Sign In" in the Output Field.
Template component 2632: A UI component of Input type TextField for receiving input of an email address that is a user name (user ID) for the application, that is, a UI component for receiving input of user-specific information.
Template component 2633: A button UI component that is set (labeled) to display "CREATE ACCOUNT?". When pressed, an action is set (predefined) to transition to a "Sign Up form" screen (a UI screen corresponding to option 2614 on the screen shown in FIG. 27(c)).
Template component 2634: A button UI component that is set (labeled) to display "NEXT." When pressed, a value (email address) input to template component 2632 is acquired, and an action is set in advance (defined in advance) to transition to a "Sign in Password" screen (a UI screen corresponding to option 2612 on the screen shown in FIG. 27(a)), which is a type of template screen.

図27(a)に、「Sign in Password」の画面のキャンバスにおける表示例を示す。なお、図27(a)~図27(k)はそれぞれ、テンプレート画面をキャンバスに表示した場合のキャンバスの部分だけを示した部分的な表示例である。「Sign in Password」の画面に配置される雛形部品2711~2715はそれぞれ以下のようなUI部品である。
・雛形部品2711:Inputの種別のTextFieldで、アプリのユーザーパスワードの入力を受け付けるためのUI部品。
・雛形部品2712:ボタンのUI部品で、「Forget Password?」と表示する設定となっている。押下されたことに応じて、テンプレ―ト画面の一種である「Reset Password Step1」の画面(図27(g)に示す画面で、選択肢2618に対応するUI画面)に遷移するというアクションが予め定められている(予め定義されている)。
・雛形部品2713:チェックボックスで、「Trust this device for 14 days」と表示される。
・雛形部品2714:「CHANGE EMAIL」と表示されるボタンで、押下されたことに応じて「Sign in ID」の画面に戻るというアクションが予め定められている(予め定義されている)。
・雛形部品2715:「SIGN IN」と表示されるボタンで、押下されたことに応じて、雛形部品2632に入力された値(メールアドレス)と、雛形部品2711に入力された値(パスワード)と、雛形部品2713のチェックボックスのチェックの有無とを、当該アプリが構築されている実行環境に送信するというアクションが予め定められている(予め定義されている)。
Fig. 27(a) shows an example of the display on the canvas of the "Sign in Password" screen. Note that Fig. 27(a) to Fig. 27(k) are each partial display examples showing only a portion of the canvas when a template screen is displayed on the canvas. Template parts 2711 to 2715 arranged on the "Sign in Password" screen are UI parts as follows.
Template component 2711: A TextField of the Input type, which is a UI component for receiving input of a user password for the application.
Template component 2712: A button UI component that is set to display "Forget Password?" When pressed, an action is set in advance (predefined) to transition to a "Reset Password Step 1" screen (a UI screen corresponding to option 2618 on the screen shown in FIG. 27(g)), which is a type of template screen.
Template component 2713: A check box that displays "Trust this device for 14 days."
Template component 2714: This is a button that displays "CHANGE EMAIL," and when pressed, an action of returning to the "Sign in ID" screen is set in advance (predefined).
Template component 2715: This is a button that displays "SIGN IN." When pressed, a predetermined action is performed (predefined): the value entered in template component 2632 (email address), the value entered in template component 2711 (password), and whether the check box of template component 2713 is checked, are sent to the execution environment in which the application is built.

実際に構築されたアプリにおいては、アプリユーザー用端末201に表示された雛形部品2715に対応するボタンの押下に応じて、アプリユーザー用端末201から、ユーザーネームとなるメールアドレス、パスワード、チェックの有無が実行環境に送信される。実行環境では、受信したメールアドレスとパスワードの組が正しいかを、マルチテナント実行環境のユーザー情報411(図14(b)に示したもの)またはシングルテナント実行環境のユーザー別情報(図14(c1)に示したもの)と一致するか照合する。照合の結果、認証OKであれば、アプリへのログインがなされ、アプリユーザー用端末201にイニシャルUIが表示される。 In an actually constructed app, in response to pressing a button corresponding to template component 2715 displayed on app user terminal 201, the app user terminal 201 sends to the execution environment an email address, which serves as the username, a password, and whether or not a check is selected. In the execution environment, the received pair of email address and password is checked to see if it is correct, and is compared with user information 411 (shown in FIG. 14(b)) of the multi-tenant execution environment or per-user information (shown in FIG. 14(c1)) of the single-tenant execution environment. If the result of the comparison is that authentication is OK, the user is logged into the app, and an initial UI is displayed on the app user terminal 201.

同様に、以下の通りテンプレート画面のキャンバスにおける表示例を図示する。いずれも、アプリのユーザー認証に関する画面である。
・図27(b):選択肢2613に対応するUI画面。
・図27(c):選択肢2614に対応するUI画面。
・図27(d):選択肢2615に対応するUI画面。
・図27(e):選択肢2616に対応するUI画面。
・図27(f):選択肢2617に対応するUI画面。
・図27(g):選択肢2618に対応するUI画面。
・図27(h):選択肢2619に対応するUI画面。
・図27(i):選択肢2620に対応するUI画面。
・図27(j):選択肢2621に対応するUI画面。
・図27(k):選択肢2622に対応するUI画面。
Similarly, the following are examples of template screens displayed on the canvas. Both are screens related to user authentication for the app.
・FIG. 27( b ): UI screen corresponding to option 2613.
・FIG. 27( c ): UI screen corresponding to option 2614 .
・Figure 27 (d): UI screen corresponding to option 2615.
- Figure 27 (e): UI screen corresponding to option 2616.
・Figure 27 (f): UI screen corresponding to option 2617.
・Figure 27 (g): UI screen corresponding to option 2618.
・Figure 27 (h): UI screen corresponding to option 2619.
- Figure 27 (i): UI screen corresponding to option 2620.
・Figure 27(j): UI screen corresponding to option 2621.
・FIG. 27( k ): UI screen corresponding to option 2622 .

上述した各テンプレート画面はカスタマイズが可能であり、図4のS405以降の処理で説明した通り、UIエディタで開発者が編集可能である。編集可能な内容としては、雛形部品(雛形コンポーネント)とは異なる他のUI部品の追加、雛形部品の配置位置、表示サイズの変更、雛形部品のプロパティの設定変更(表示される文字や色などの表示形態の変更)が可能である。また、テンプレート画面のキャンバスのアクションも設定・変更可能である。一方で、雛形部品のアクションの変更、削除、雛形部品の消去はできないものとする。また、テンプレート画面に追加した通常のUI部品(雛形部品ではないUI部品)に関しても、アクションの変更、削除は行えないものとする。このようにすることで、クラウドサービスを用いた認証処理に必要なアクションが修正されたことに起因する意図しないエラーが発生し、認証処理が上手く動作しなくなってしまうことを抑止することができる。すなわち、テンプレート画面では、ミスの無い認証に必要なアクションが雛形部品に予め定められており、修正不可となっているため、開発者がテンプレート画面のカスタマイズを行ったとしてもクラウドサービスを用いた認証処理は確実に上手く動作するようになっている。テンプレート画面に追加した通常のUI部品にもアクションが設定できないようにしているのは、認証が上手く動作しなくなるようなアクションが設定されてしまうのを防止するためである。例えば、図26(b)の「Sign in ID」のテンプレート画面に、新規にボタンを追加し、そのボタンに認証とは関係のないUI画面に遷移するようなアクションが設定されてしまうと、認証に必要なメールアドレスとパスワードを実行環境に送信することができなくなり、認証が動作しなくなってしまう。認証がOKとなっていない状態では遷移先のUI画面も表示されないため、アプリは正常に動作しない。このような問題を、テンプレート画面に追加した通常のUI部品にもアクションが設定できないようにすることで防止することができる。 Each of the above-mentioned template screens can be customized, and as described in the process after S405 in FIG. 4, the developer can edit them with a UI editor. The editable contents include adding UI parts other than template parts (template components), changing the layout position and display size of template parts, and changing the settings of the template part properties (changing the display form such as the displayed characters and color). In addition, the action of the canvas of the template screen can also be set and changed. On the other hand, it is assumed that the action of the template part cannot be changed or deleted, and the template part cannot be erased. In addition, it is assumed that the action of a normal UI part (a UI part that is not a template part) added to the template screen cannot be changed or deleted. In this way, it is possible to prevent an unintended error caused by the modification of an action required for authentication processing using a cloud service, which causes the authentication processing to not work properly. In other words, in the template screen, the actions required for authentication without errors are predefined in the template parts and cannot be modified, so that even if the developer customizes the template screen, the authentication processing using the cloud service will surely work properly. The reason why actions cannot be set for normal UI parts added to the template screen is to prevent actions that would cause authentication to not work properly being set. For example, if a new button is added to the "Sign in ID" template screen in FIG. 26(b) and an action that transitions to a UI screen unrelated to authentication is set for that button, the email address and password required for authentication cannot be sent to the execution environment, and authentication will not work. If authentication is not successful, the UI screen to which the transition is made will not be displayed, and the app will not work properly. Problems like this can be prevented by not allowing actions to be set for normal UI parts added to the template screen.

図26(c)に、テンプレート画面ではないUI画面のキャンバスに配置されたボタン2654のコンテキストメニュー2655を表示した表示例を示す。このように、通常であれば、ボタンのコンテキストメニューにはアクション、消去の選択肢が含まれる。これは、図5(d)の表示例で説明したことと同様である。従って、図7のS711~S720で説明した通り、プロパティの編集、アクションの編集、部品の消去といった編集が可能である。 Figure 26 (c) shows an example of a display that displays a context menu 2655 for a button 2654 placed on the canvas of a UI screen that is not a template screen. As such, the button's context menu normally includes the options of action and deletion. This is the same as what was explained in the display example of Figure 5 (d). Therefore, as explained in S711 to S720 of Figure 7, editing such as editing properties, editing actions, and deleting parts is possible.

図26(d)に、テンプレート画面のキャンバスに配置されたボタン2634のコンテキストメニュー2635を表示した表示例を示す。このように、テンプレート画面に配置された雛形部品のコンテキストメニューにはアクション、消去の選択肢が表示されない。これによって、アクションの設定、雛形部品の消去ができないように制御している。すなわちアクションボードも表示されない。従って、図7のS721~S724で説明した通り、雛形部品についてはプロパティの編集(表示形態の変更)のみが行える。 Figure 26 (d) shows an example of a display in which a context menu 2635 is displayed for a button 2634 placed on the canvas of a template screen. In this way, the action and delete options are not displayed in the context menu of a template component placed on the template screen. This prevents the user from setting an action or deleting the template component. In other words, the action board is not displayed either. Therefore, as explained in S721 to S724 of Figure 7, only the properties of the template component can be edited (the display form can be changed).

図26(e)に、図26(b)に示したテンプレート画面のキャンバスに対して編集(カスタマイズ)を加えた後の表示例を示す。図26(b)と図26(e)とで同じUI部品には同じ符号を付す。UI部品2641は、開発者によって追加された出力の種別のUI部品であり、図12のS1217のファイル管理操作でアップロードされた画像ファイルを指定して表示したものである。この画像を、アプリを表すアイコンや画像にすれば、この認証画面がどのアプリの認証画面なのかをユーザーが把握しやすくなる。UI部品2642は、開発者によって追加された、テキストメッセージを出力する種別のUI部品である。また、この画面のキャンバスのアクションとして、今日の日付を取得して、月末であれば「月末締め日ですので、申請をお忘れなく」という文字列をUI部品2642に表示する、というアクションを、キャンバスのアクションボードを開いて開発者が設定したものとする。このように、この認証用の画面を表示する際の条件によって表示内容が変更されるUI部品(コンポーネント)を配置することも可能である。雛形部品2631は、図25(b)の雛形部品2631と同じUI部品(同じIDのUI部品)であるが、開発者のプロパティの編集操作によって表示する内容(ラベル)が変更され、「Login」と表示される。このように、認証に必須のアクション以外については画面設計の自由度が高い。従って例えば、アプリのユーザーが、何のアプリの認証画面(ログイン画面)なのかを容易に認識可能な画面にしたり、社内で取り決めた社内標準デザインに沿ったデザインにしたり、アプリの性質に合わせたより好適なデザインの画面にしたりすることができる。 Figure 26 (e) shows a display example after editing (customization) is added to the canvas of the template screen shown in Figure 26 (b). The same UI parts in Figure 26 (b) and Figure 26 (e) are given the same reference numerals. UI part 2641 is an output type UI part added by the developer, and is displayed by specifying the image file uploaded in the file management operation of S1217 in Figure 12. If this image is an icon or image representing the application, the user can easily understand which application's authentication screen this is. UI part 2642 is a type of UI part that outputs a text message added by the developer. In addition, as an action of the canvas of this screen, the developer opens the action board of the canvas and sets an action of acquiring today's date and displaying a character string "It's the closing date at the end of the month, so don't forget to apply" on UI part 2642 if it is the end of the month. In this way, it is also possible to arrange a UI part (component) whose display content changes depending on the conditions when this authentication screen is displayed. Template component 2631 is the same UI component (UI component with the same ID) as template component 2631 in FIG. 25(b), but the content (label) to be displayed can be changed by editing the properties by the developer, and "Login" is displayed. In this way, there is a high degree of freedom in screen design for actions other than those essential for authentication. Therefore, for example, it is possible to make the screen easily recognizable to the app user as to which app's authentication screen (login screen) it is, to design it according to an internal company standard design agreed upon within the company, or to design it in a more suitable way to match the nature of the app.

<プロパティボックスの表示例>
キャンバスに配置されたUI部品のコンテキストメニューからプロパティを選んで表示されるプロパティボックスについて説明する。
<Property box display example>
The property box that is displayed when a property is selected from the context menu of a UI part placed on the canvas will now be described.

図28(a)に、パイチャートのプロパティボックスの表示例を示す。図28は、図5(b)に示した表示状態から、キャンバス530に配置されたUI部品であるパイチャート531を右クリックして表示されたコンテキストメニューのうち、プロパティを選択することで表示する画面である。この画面を表示する処理と、表示されたプロパティボックスに対する編集処理の受付は、前述した図7のS706で行われる。プロパティボックス2810が、パイチャート531のプロパティボックスである。プロパティボックス2810は、キャンバス530に表示されたパイチャート531とともに表示される。パイチャート531に表示される中身である円グラフの比率や色分けなどの表示形態は、プロパティボックス2810に設定された内容に基づいて表示される。プロパティボックス2801で設定内容が変更され、適用ボタン2811が押下されると、プロパティボックス2801の最新の設定値(変更された設定値)に基づいて、パイチャート531の表示形態が更新される。すなわち、開発者は、パイチャート531の表示形態がどのように変化するのかを確認しながら、プロパティボックス2810に対する設定操作を行うことができる。 28(a) shows an example of the display of the property box of a pie chart. FIG. 28 shows a screen displayed by right-clicking on the pie chart 531, which is a UI part arranged on the canvas 530, from the display state shown in FIG. 5(b) and selecting "Property" from the displayed context menu. The process of displaying this screen and the reception of the editing process for the displayed property box are performed in S706 of FIG. 7 described above. The property box 2810 is the property box of the pie chart 531. The property box 2810 is displayed together with the pie chart 531 displayed on the canvas 530. The display form of the pie chart, such as the ratio and color coding, which are the contents displayed in the pie chart 531, is displayed based on the contents set in the property box 2810. When the setting contents are changed in the property box 2801 and the apply button 2811 is pressed, the display form of the pie chart 531 is updated based on the latest setting value (changed setting value) of the property box 2801. That is, the developer can perform the setting operation for the property box 2810 while checking how the display form of the pie chart 531 changes.

UI部品一覧からパイチャートをドラッグ&ドロップでキャンバスに配置した際、何の値も設定されていないと、円グラフの比率毎の区域が表示されないため、ただの円のような表示となってしまう。これでは、開発者が配置されたUI部品を見て、それがパイチャート(円グラフ)であることを直感的に認識することができない。これを解決するため、パイチャートのプロパティとして予め定められた初期値(開発者が設定したものではないデフォルトの設定値)を設定しておくものとする。こうすることで、UI部品一覧からパイチャートをドラッグ&ドロップでキャンバスに配置した際、最初から比率別に区域分けされた円グラフが表示されるため、開発者は、配置したUI部品が円グラフであることを素早く直感的に把握することができる。 When a pie chart is placed on the canvas by dragging and dropping it from the UI parts list, if no values are set, the regions of the pie chart will not be displayed according to their ratios, and it will simply be displayed as a circle. This means that a developer cannot look at the placed UI part and intuitively recognize that it is a pie chart. To solve this, a predefined initial value (a default setting value not set by the developer) is set as a property of the pie chart. By doing this, when a pie chart is placed on the canvas by dragging and dropping it from the UI parts list, a pie chart with regions divided by ratios will be displayed from the start, allowing the developer to quickly and intuitively recognize that the placed UI part is a pie chart.

プロパティボックス2810のうち、Value入力領域2812は、パイチャート531が示す各区域のID、数値、色、ラベル(表示文字列)を入力する領域である。開発者が何も設定していない状況であれば、初期値が図示のように表示される。図示の例では、初期値の一部だけが表示されており、スクロールすることで最初から最後までを見ることができる。Value入力領域2812に表示される初期値の全文は以下の通りであるものとする。なお、「″」はダブルクォーテーションであるものとする Of the property box 2810, the Value input area 2812 is an area for inputting the ID, numerical value, color, and label (display string) of each area shown by the pie chart 531. If the developer has not set anything, the initial value is displayed as shown. In the example shown, only a portion of the initial value is displayed, and it is possible to view the entire value by scrolling. The full text of the initial value displayed in the Value input area 2812 is as follows. Note that "" is assumed to be a double quotation mark.

[{″id″:″Jan″,″value″:開発者用端末100.33,″color″:″#394E79″,″month″:″Jan″},{″id″:″Feb″,″value″:22.12,″color″:″#5E83BA″,″month″:″Feb″},{″id″:″Mar″,″value″:53.21,″color″:″#C2D2E9″,″month″:″Mar″},{″id″:″Apr″,″value″:34.25,″color″:″#9A8BA5″,″month″:″Apr″},{″id″:″May″,″value″:24.65,″color″:″#E3C5D5″,″month″:″May″}]
Value入力領域2810に表示された初期値は、プログラミング言語で記述する際の構造で表示されている。上記の初期値の全文のうち、「{」と「}」で囲まれた部分がパイチャートにおいて1つの区域に対応する1つのデータセットである。「″」で囲まれた文字列が「:」で対応付けられた1組の文字列は、キー名とキーの値の組である。例えば、「″id″:″Jan″」では、キー名が「id」であり、キーの値が「Jan」である。「,」が前のキーと次のキーとの区切りである。すなわち、上記の初期値の全文のうち、{″id″:″Jan″,″value″:開発者用端末100.33,″color″:″#394E79″,″month″:″Jan″}という複数組分を含む部分が1つのデータセット(1セット)であり、id、value、color、monthの4つのキー名と値の組が含まれている。同様のデータセットが全部で5つあることがわかる。このように、パイチャートの初期値は、それぞれデフォルトの設定値群を含むデータセットを複数含む設定値のセットである。
[{″id″:″Jan″,″value″:Developer terminal 100.33,″color″:″#394E79″,″month″:″Jan″},{″id″:″Feb″,″ value": 22.12, "color": "#5E83BA", "month": "Feb"}, {"id": "Mar", "value": 53.21 , "color": "#C2D2E9", "month": "Mar"}, {"id": "Apr", "value": 34.25, "color": "#9A8BA5", "month":" Apr″}, {″id″:″May″,″value″:24.65,″color″:″#E3C5D5″,″month″:″May″}]
The initial value displayed in the Value input area 2810 is displayed in a structure used when describing it in a programming language. Of the entire text of the initial value, the part enclosed in "{" and "}" is the pie chart. A set of character strings, each of which is surrounded by "", and associated with a ":", is a pair of a key name and a key value. For example, in "id:Jan", the key name is "id" and the key value is "Jan". "," is the separator between the previous key and the next key. That is, Among the above initial values, the following multiple values are included: {"id":"Jan", "value": developer terminal 100.33, "color":"#394E79", "month":"Jan"} The part containing the grouping is one dataset (one set), and contains four key name and value pairs: id, value, color, and month. There are a total of five similar datasets. You can understand. In this way, the initial values of the pie chart are a set of settings that includes multiple data sets, each of which includes a set of default settings.

開発者は、プロパティボックス2810のValue入力領域2812に表示された初期値を、Value入力領域2812を選択してキーボードからの入力を行うことで自由に編集可能である。ただし、初期値として、上記のように構造がわかるように表示されているため、どこをどのように編集すれば良いのかを理解しやすい。また、適用ボタン2811を押下すれば編集した内容がパイチャート531に反映されるため、どこの構造の値を変更するとパイチャート531がどのように変化するかを確認できる。そのため、プログラミング言語で記述可能な構造で表示された文字列のうち、どこがどういう意味なのかというのも理解しやすい。 A developer can freely edit the initial value displayed in Value input area 2812 of property box 2810 by selecting Value input area 2812 and entering an input from the keyboard. However, since the initial value is displayed in such a way that the structure can be seen as above, it is easy to understand where and how to edit. Furthermore, by pressing Apply button 2811, the edited content is reflected in pie chart 531, so it is possible to confirm how pie chart 531 changes when the value of a certain structure is changed. Therefore, it is easy to understand what each part of a string displayed in a structure that can be written in a programming language means.

単にパイチャートの設定値を設定できるようにするのであれば、プロパティボックス2810において「区域1のID」、「区域1の値」、「区域1の色」、「区域1の表示ラベル」…といったように設定項目を分け、それぞれに対して開発者に入力あるいは選択させるという設定方法も考えられる。しかし、本実施形態ではそうはせず、プログラミング言語で記述する際の構造で初期値を表示し、開発者が編集する場合もプログラミング言語で記述する際の構造に沿った記述で入力させる。これは、パイチャートの設定値を、他のUI部品またはキャンバスのアクションボードにJavaScriptで入力するアクションによって変更可能であるためである。初期値をプログラミング言語で記述可能な構造で、コピー可能なテキスト(文字列)で表示しておけば、開発者は、この文字列を公知のコピーによってクリップボードにコピーし、アクションボードにペーストすることができる(コピーアンドペーストすることができる)。そして、アクションボード上で変更を加えたい部分の文字だけを修正すれば、パイチャートの表示内容を変更するアクションを容易に記述することができる。このようにすることで、開発者が、パイチャートの表示形態を変更するようなアクションを記述したい場合に、どのように記述すればよいかわからないために意図通りのアクションを記述できない、あるいは記述の仕方を調べるのに多大な時間を費やしてしまうことを抑制できる。すなわち、より効率的なソフトウェア開発を行うことができる。プログラミング言語であるため、その他の編集を加えたい場合にも自由度高く編集することができる。 If it is simply necessary to set the setting values of the pie chart, it is possible to separate the setting items in the property box 2810, such as "ID of area 1", "value of area 1", "color of area 1", "display label of area 1", etc., and have the developer input or select for each of them. However, in this embodiment, instead of doing so, the initial values are displayed in a structure when written in a programming language, and when the developer edits, they are input in a description that follows the structure when written in a programming language. This is because the setting values of the pie chart can be changed by an action input in JavaScript to another UI part or the action board of the canvas. If the initial values are displayed in a structure that can be written in a programming language and as copyable text (character string), the developer can copy this character string to the clipboard by known copying and paste it into the action board (copy and paste is possible). Then, by modifying only the characters in the part to be changed on the action board, an action that changes the display content of the pie chart can be easily written. This prevents developers from being unable to write the intended action because they do not know how to write it when they want to write an action that changes the display format of a pie chart, or from spending a lot of time looking up how to write it. In other words, software development can be made more efficient. Because it is a programming language, it allows for a high degree of freedom when other edits are desired.

図29に、開発者が配置した、パイチャート531とは異なる他のUI部品(ボタン)のアクションボードに、開発者によって、パイチャート531の表示形態(表示内容)を変更(指定)するアクションが入力された場合のアクションボードの表示例を示す。図示のアクションボード2900は、構築後のアプリにおいてボタンが押下された場合に実行すべきアクションをプログラミング言語で記述する記述領域(入力領域)である。アクションボード2900に表示された文字列(JavaScriptでの文字列)のうち、2行目から32行目は、プロパティボックス2810のValue入力領域2812に表示された初期値をコピーアンドペーストし、見やすさのための改行を加えたものをベースとして、数値2901~数値2951だけを編集(変更)したものである。もちろん、他の部分を変更してもよいし、データセット(「{}」で囲まれた部分)の追加や削除を行っても良い。このように、プログラミング言語でのアクションの入力が非常に容易となる。構築後のアプリにおいて、このアクションボードに対応するボタンが押下された場合、パイチャートは、初期値ではなく、このアクションボードに記述された内容に基づいた表示形態で表示される。 Figure 29 shows an example of the display of an action board when a developer inputs an action to change (specify) the display form (display content) of the pie chart 531 in the action board of a UI part (button) different from the pie chart 531 placed by the developer. The action board 2900 shown in the figure is a description area (input area) in which the action to be executed when the button is pressed in the constructed application is written in a programming language. Among the character strings (character strings in JavaScript) displayed on the action board 2900, the second to 32nd lines are edited (changed) only for the numerical values 2901 to 2951, based on the initial value displayed in the Value input area 2812 of the property box 2810, which is copied and pasted and has line breaks added for ease of viewing. Of course, other parts may be changed, and a data set (part surrounded by "{ }") may be added or deleted. In this way, inputting an action in a programming language becomes very easy. In the constructed app, when the button corresponding to this action board is pressed, the pie chart will be displayed in a format based on the content written on this action board, rather than the default.

パイチャートと同様に、UI部品のうちリストにも初期値(デフォルトの設定値)が設定されており、プロパティボックスにおいて初期値がプログラミング言語で記述する場合の構造に則って表示される。図28(b)に、リスト2802のプロパティボックス2820の表示例を示す。Value入力領域2821には、図示の通り、初期値がプログラミング言語で記述する場合の構造に則って表示される。 As with pie charts, initial values (default settings) are set for lists, which are UI components, and the initial values are displayed in the property box according to the structure when written in a programming language. Figure 28 (b) shows an example of how the property box 2820 of the list 2802 is displayed. As shown in the figure, the Value input area 2821 displays the initial values according to the structure when written in a programming language.

パイチャートと同様に、UI部品のうちLINE CHART(ラインチャート、線グラフ)にも初期値(デフォルトの設定値)が設定されており、プロパティボックスにおいて初期値がプログラミング言語で記述する場合の構造に則って表示される。図28(c)に、LINE CHART2803のプロパティボックス2830の表示例を示す。入力領域2831~2834には、図示の通り、初期値がプログラミング言語で記述する場合の構造に則って表示される。 Like the pie chart, the LINE CHART (line chart, line graph) UI component also has an initial value (default setting value) set, and the initial value is displayed in the property box according to the structure when written in a programming language. Figure 28 (c) shows an example of the display of the property box 2830 of LINE CHART 2803. As shown in the figure, the initial value is displayed in input areas 2831 to 2834 according to the structure when written in a programming language.

パイチャートと同様に、UI部品のうちデータグリッド(表)、コンボボックス、タブ部品、ステッパー、パンくずリスト(Breadcrumbs)にも初期値(デフォルトの設定値)が設定されており、プロパティボックスにおいて初期値がプログラミング言語で記述する場合の構造に則って表示される。図28(d)に、データグリッド2804のプロパティボックス2840の表示例を示す。入力領域2841には、図示の通り、初期値がプログラミング言語で記述する場合の構造に則って表示される。データグリッドの初期値は、データグリッドの1行毎の各カラムの値を1セットのデータセットとして、複数行分のデータセットを含む。 As with pie charts, initial values (default settings) are set for the UI components data grids (tables), combo boxes, tab components, steppers, and breadcrumbs, and the initial values are displayed in the property box according to the structure when written in a programming language. Figure 28(d) shows an example of the display of a property box 2840 for a data grid 2804. As shown in the figure, the initial values are displayed in the input area 2841 according to the structure when written in a programming language. The initial values for a data grid include a data set for multiple rows, with the values of each column for each row of the data grid being one set of data set.

<データグリッドのプロパティとアクションの設定>
図30に、開発者用端末100におけるデータグリッドのコンテキストメニュー処理のフローチャートを示す。この処理は、前述した図7のS705の詳細フローチャートである。この処理は開発者用端末100が実行する。
<Setting DataGrid properties and actions>
30 shows a flowchart of the context menu process of the data grid in the developer terminal 100. This process is a detailed flowchart of S705 in FIG.

S3001では、開発者用端末100は、データグリッド用のコンテキストメニューを表示する。図31(a)に、データグリッド用のコンテキストメニューの表示例を示す。キャンバス530に配置されたUI部品であるデータグリッド3110は、カラム3111~3116の6つのカラムを有している。なお、データグリッド3110を囲む点線はデータグリッド3110の全体を示すために図示した図面上の補助線であって、表示されるものではない。マウスカーソルの近傍に、データグリッド用のコンテキストメニュー3120が表示される。コンテキストメニュー3120には、メニュー項目となる選択肢として、少なくともプロパティ3121とアクション3122が表示される。 In S3001, the developer terminal 100 displays a context menu for the data grid. FIG. 31(a) shows an example of the display of the context menu for the data grid. Data grid 3110, which is a UI component arranged on canvas 530, has six columns, columns 3111 to 3116. Note that the dotted lines surrounding data grid 3110 are auxiliary lines on the drawing shown to show the entire data grid 3110, and are not displayed. A context menu 3120 for the data grid is displayed near the mouse cursor. In the context menu 3120, at least properties 3121 and actions 3122 are displayed as options that become menu items.

S3002では、開発者用端末100は、コンテキストメニュー3120に含まれる選択肢のうち、プロパティ3121が押下(選択)されたか否かを判定する。プロパティ3121が押下(選択)された場合はS3010に進み、そうでない場合にはS3003へ進む。 In S3002, the developer terminal 100 determines whether or not Property 3121 has been pressed (selected) from among the options included in the context menu 3120. If Property 3121 has been pressed (selected), the process proceeds to S3010; if not, the process proceeds to S3003.

S3003では、開発者用端末100は、コンテキストメニュー3120に含まれる選択肢のうち、アクション3122が押下(選択)されたか否かを判定する。アクション3122が押下(選択)された場合はS3020に進み、そうでない場合にはS3004へ進む。 In S3003, the developer terminal 100 determines whether or not action 3122 has been pressed (selected) from among the options included in the context menu 3120. If action 3122 has been pressed (selected), the process proceeds to S3020; otherwise, the process proceeds to S3004.

S3004では、開発者用端末100は、コンテキストメニュー3120に含まれる選択肢のうち、その他の選択肢が押下(選択)されたか否かを判定する。その他の選択肢が押下(選択)された場合はS3005に進み、そうでない場合にはS3006へ進む。 In S3004, the developer terminal 100 determines whether or not any of the options included in the context menu 3120 have been pressed (selected). If any of the options have been pressed (selected), the process proceeds to S3005; if not, the process proceeds to S3006.

S3005では、開発者用端末100は、その他の選択肢の押下(選択)に応じたその他の処理を行う。例えば、消去する選択肢が選択された場合には指定UI部品であるデータグリッドをキャンバスから削除(消去)する。 In S3005, the developer terminal 100 performs other processing in response to pressing (selecting) other options. For example, if the option to delete is selected, the data grid, which is the specified UI component, is deleted (erased) from the canvas.

S3006では、開発者用端末100は、コンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、S3007でコンテキストメニューを非表示とし、図30の処理を終了する。閉じる操作がない場合にはS3002に戻る。 In S3006, the developer terminal 100 determines whether an operation to close the context menu has been performed (for example, an operation of clicking outside the area in which the context menu is displayed). If an operation to close the context menu has been performed, the context menu is hidden in S3007, and the processing in FIG. 30 ends. If no operation to close the context menu has been performed, the processing returns to S3002.

S3010では、開発者用端末100は、指定UI部品であるデータグリッドのプロパティボックスを表示する。図31(b)~図31(f)に、データグリッドのプロパティボックスの表示例を示す。図31(b)~図31(f)において、同じ表示アイテムには同じ符号を付す。図31(b)の適用ボタン3131は、プロパティボックスに入力された内容(変更された設定内容)を反映することを指示するボタンアイコンである。適用ボタン3131が押下されると、プロパティボックスの最新の設定内容に基づいて、プロパティボックスとともに表示しているキャンバスに配置された指定UI部品であるデータグリッドの表示形態を変更する。カラム選択欄3132は、設定を変更したいカラムを選択するための選択タブである。データグリッドのプロパティボックスでは、カラム毎に設定を受け付ける画面を表示し、カラム毎のプロパティの設定を受け付ける。カラム追加ボタン3133は、指定UI部品であるデータグリッドにカラムを追加することを指示する表示アイテムである。 In S3010, the developer terminal 100 displays a property box of the data grid, which is the specified UI component. Examples of the display of the property box of the data grid are shown in Fig. 31(b) to Fig. 31(f). In Fig. 31(b) to Fig. 31(f), the same display items are given the same reference numerals. The apply button 3131 in Fig. 31(b) is a button icon that instructs to reflect the contents (changed setting contents) inputted in the property box. When the apply button 3131 is pressed, the display form of the data grid, which is the specified UI component arranged on the canvas displayed together with the property box, is changed based on the latest setting contents of the property box. The column selection field 3132 is a selection tab for selecting the column whose settings are to be changed. In the property box of the data grid, a screen that accepts settings for each column is displayed, and the property settings for each column are accepted. The add column button 3133 is a display item that instructs to add a column to the data grid, which is the specified UI component.

S3011では、開発者用端末100は、プロパティボックス内のカラム選択欄3132でいずれかのカラムに対応するタブが押下されたか否かを判定する。すなわち、設定対象としていずれかのカラムが選択されたか否かを判定する。いずれかのカラムに対応するタブが押下された場合にはS3012に進み、そうでない場合にはS3013に進む。なお、カラム選択欄3132に表示されたタブ(選択肢)のうち、最も左側に配置されるタブ(不図示)は、「DataGrid」と表記されたタブであり、指定UI部品であるデータグリッドの全体に関する設定を行う設定画面を表示させるためのタブである。この「DataGrid」のタブだけは、特定のカラムに関するものではない(特定のカラムを選択するものではない)。 In S3011, the developer terminal 100 determines whether a tab corresponding to any column has been pressed in the column selection field 3132 in the property box. In other words, it determines whether any column has been selected as the setting target. If a tab corresponding to any column has been pressed, the process proceeds to S3012, and if not, the process proceeds to S3013. Note that of the tabs (options) displayed in the column selection field 3132, the tab located on the far left (not shown) is labeled "DataGrid," and is a tab for displaying a setting screen for making settings related to the entire data grid, which is the specified UI component. Only this "DataGrid" tab does not relate to a specific column (it does not select a specific column).

S3012では、開発者用端末100は、プロパティボックスのうちカラム選択欄3132より下部の領域の表示内容を、選択されたカラムに関する設定画面(要素画面)に切り替える。図31(c)に、カラム選択欄3132のうち、タブ3132E(「CompanyE」と表記されたタブ)が選択された場合の表示例を示す。プロパティボックスのうちカラム選択欄3132より下側の領域には、タブ3132Eに対応するカラムの設定を受け付ける画面として、タブ3132Eの設定画面の上部領域3134tが表示される。ここには例えば、カラムの部品種別(コンポーネントのタイプ)を選択する種別設定欄3135が含まれる。タブ3132Eの設定画面は下側にさらに続いており、スクロールすることでさらに下側の方を表示することができる。図31(d)に、スクロールさせて、タブ3132Eの設定画面の下部領域3134dを表示させた場合の表示例を示す。下部領域3134dには、タブ3132Eに対応するカラム自体の削除を指示するためのカラム削除ボタン3136と、タブ3132Eの設定画面に設定した内容を適用してキャンバスに表示されているデータグリッドに反映する指示を行う適用ボタン3137とが含まれる。カラム選択欄3132はスクロールに伴って上側に移動し、プロパティボックス内で見えなくなっているが、上部領域3134tが表示されるようにスクロールを戻せば再度表示される。なお、S3011で「DataGrid」のタブが選択された場合は、プロパティボックスのうちカラム選択欄3132より下部の領域の表示内容を、データグリッドの全体に関する設定を行う設定画面に切り替える。 In S3012, the developer terminal 100 switches the display content of the area below the column selection field 3132 in the property box to a setting screen (element screen) related to the selected column. FIG. 31(c) shows an example of a display when the tab 3132E (a tab marked "CompanyE") is selected in the column selection field 3132. In the area below the column selection field 3132 in the property box, the upper area 3134t of the setting screen of the tab 3132E is displayed as a screen for accepting settings of the column corresponding to the tab 3132E. This includes, for example, a type setting field 3135 for selecting the part type (component type) of the column. The setting screen of the tab 3132E continues further downward, and the lower part can be displayed by scrolling. FIG. 31(d) shows an example of a display when the lower area 3134d of the setting screen of the tab 3132E is displayed by scrolling. The lower region 3134d includes a column delete button 3136 for instructing the deletion of the column itself corresponding to tab 3132E, and an apply button 3137 for instructing the application of the contents set in the setting screen of tab 3132E to be reflected in the data grid displayed on the canvas. The column selection field 3132 moves upward as the user scrolls and is no longer visible in the property box, but it will reappear if the user scrolls back so that the upper region 3134t is visible. Note that when the "DataGrid" tab is selected in S3011, the display content of the area of the property box below the column selection field 3132 is switched to a setting screen for setting the entire data grid.

S3013では、開発者用端末100は、プロパティボックス内のカラム追加ボタン3133が押下されたか否かを判定する。カラム追加ボタン3133が押下された場合にはS3014に進み、そうでない場合にはS3015に進む。 In S3013, the developer terminal 100 determines whether the Add Column button 3133 in the property box has been pressed. If the Add Column button 3133 has been pressed, the process proceeds to S3014; if not, the process proceeds to S3015.

S3014では、開発者用端末100は、カラムの追加処理を行う。カラムの追加処理では、まず、図31(e)に示すカラムの追加フォーム3138を表示し、開発者(ユーザー)から、追加するカラム(表の列)のIDとラベル(表示するカラムの名前)の設定を受け付ける。そして、ADD TO Valueボタンが押下されると、新しいカラムが追加され、カラム選択欄3132に新しいカラムに対応するタブが追加される。 In S3014, the developer terminal 100 performs a column addition process. In the column addition process, first, the column addition form 3138 shown in FIG. 31(e) is displayed, and the developer (user) sets the ID and label (name of the column to be displayed) of the column (column of the table) to be added. Then, when the ADD TO VALUE button is pressed, a new column is added, and a tab corresponding to the new column is added to the column selection field 3132.

図31(f)に、カラムが追加された場合のプロパティボックスの表示例を示す。図31(c)と比較して、カラム選択欄3132には、新しいカラムに対応するタブ3032F(「CompanyF」と表記されたタブ)が追加されている。追加した直後は追加したカラムが選択され、カラム選択欄3132より下側の領域には、追加したカラムに対応するタブ3032Fの設定画面の上部領域3139tが表示されている。このように、本実施形態では、データグリッド(表)へのカラムの追加は、データグリッドの設定画面であるプロパティボックスに対する操作によって行われる。 Figure 31 (f) shows an example of how the property box is displayed when a column is added. Compared to Figure 31 (c), a tab 3032F (a tab labeled "Company F") corresponding to the new column has been added to the column selection field 3132. Immediately after the addition, the added column is selected, and the upper area 3139t of the settings screen for tab 3032F corresponding to the added column is displayed in the area below the column selection field 3132. In this way, in this embodiment, a column is added to a data grid (table) by operating the property box, which is the settings screen for the data grid.

S3015では、開発者用端末100は、選択されているカラムについての設定操作があったか否かを判定する。具体的には、カラム選択欄3132より下側の領域に表示された設定画面への各種設定欄への入力操作があったか否かを判定する。設定欄への入力操作があった場合にはS3016へ進み、そうでない場合はS3017へ進む。 In S3015, the developer terminal 100 determines whether or not a setting operation has been performed on the selected column. Specifically, it determines whether or not an input operation has been performed on the various setting fields on the setting screen displayed in the area below the column selection field 3132. If an input operation has been performed on the setting fields, the process proceeds to S3016; if not, the process proceeds to S3017.

S3016では、開発者用端末100は、設定操作を受け付け、表示に反映する。例えば、種別設定欄3135に対する種別の設定を受け付ける。このように、データグリッドは、カラム毎にコンポーネント(部品)としての種別を選択できる。カラムに設定できるコンポーネントの種別の選択肢として、TextInput、NumberInput、ComboBox、Multi―Select、CheckBox、DataPicker、Link、Button、IconButtonが表示され、開発者はいずれかを選択して設定できる。また、その他の設定可能な項目(設定項目)の少なくとも一部が、選択されたコンポーネントの種別に応じて変わる。例えば、種別としてTextInputを選択した場合は、他の設定項目には以下が含まれる。ValueType、ID,Label(カラム名として表示される文字列)、Width(カラムの幅)、NumberFormat、DataFormat、Options、Footer、FooterText、Sorting、Visibility。また、「DataGrid」のタブに対応するデータグリッドの全体に関する設定画面で設定可能な設定項目には、以下が含まれる。ID(データグリッドのUI部品ID)、DataGrid全体のサイズ(幅、高さ)、デプロイ後のアプリにおいて編集可能とするか、デプロイ後のアプリにおいて当該データグリッドに行追加を指示する行追加ボタンを表示するか、データグリッドの削除ボタンを表示するか、データグリッドの更新ボタンを表示するか、等。 In S3016, the developer terminal 100 accepts the setting operation and reflects it in the display. For example, it accepts the setting of the type for the type setting field 3135. In this way, the data grid allows the component (part) type to be selected for each column. TextInput, NumberInput, ComboBox, Multi-Select, CheckBox, DataPicker, Link, Button, and IconButton are displayed as options for the component type that can be set in the column, and the developer can select and set one of them. In addition, at least some of the other configurable items (setting items) change depending on the type of the selected component. For example, if TextInput is selected as the type, the other setting items include the following: ValueType, ID, Label (character string displayed as column name), Width (column width), NumberFormat, DataFormat, Options, Footer, FooterText, Sorting, Visibility. Also, the settings that can be set on the overall settings screen for the data grid corresponding to the "DataGrid" tab include the following: ID (UI part ID of the data grid), overall size of the DataGrid (width, height), whether to make it editable in the deployed app, whether to display an add row button that instructs the user to add a row to the data grid in the deployed app, whether to display a delete button for the data grid, whether to display an update button for the data grid, etc.

S3017では、開発者用端末100は、適用ボタン3131または適用ボタン3137が押下されたか否かを判定する。適用ボタン3131が押下された場合にはS3018に進み、そうでない場合にはS3019へ進む。 In S3017, the developer terminal 100 determines whether the Apply button 3131 or the Apply button 3137 has been pressed. If the Apply button 3131 has been pressed, the process proceeds to S3018; if not, the process proceeds to S3019.

S3018では、開発者用端末100は、プロパティボックスにおいて設定された内容をメモリ102に保持している定義情報に記録するとともに、設定された内容を反映してUIエディタのキャンバスに表示された指定UI部品であるデータグリッドの表示形態を変更する。例えば、カラムが追加されていれば1列追加した表示形態でデータグリッドを表示し、カラムの幅が変更されていればキャンバス上のデータグリッドのカラムの幅を変更して表示する。 In S3018, the developer terminal 100 records the contents set in the property box in the definition information stored in memory 102, and changes the display form of the data grid, which is the specified UI component displayed on the canvas of the UI editor, to reflect the contents set. For example, if a column has been added, the data grid is displayed in a display form with one column added, and if the column width has been changed, the column width of the data grid on the canvas is changed and displayed.

S3019では、開発者用端末100は、終了ボタン3140が押下されたか否かを判定する。終了ボタン3140が押下された場合は、プロパティボックスを非表示とし、図30の処理を終了する。終了ボタン3140が押下されていない場合はS3011に進む。 In S3019, the developer terminal 100 determines whether or not the End button 3140 has been pressed. If the End button 3140 has been pressed, the property box is hidden and the processing of FIG. 30 ends. If the End button 3140 has not been pressed, the process proceeds to S3011.

このように、データグリッド(表)に対するカラムの追加と、カラム毎の設定操作とを、より操作性良く行うことができる。特に、データグリッドに対してカラムの追加をする操作を、データグリッドのプロパティボックスに対する操作で行え、そのまま同じプロパティボックス内で追加したカラムに関する設定操作を行える。すなわち、カラムの追加と、追加したカラムの設定操作という一連の操作を、プロパティボックスへの操作という同様の操作感でスムーズに行うことができる。また、カラムを追加した後に、カラムのコンポーネントとして設定可能な選択肢の中から種別の設定を行うため、混乱なくカラムの追加と種別の設定とを行うことができる。 In this way, adding columns to a data grid (table) and configuring each column can be done with greater ease. In particular, adding a column to a data grid can be done by operating the data grid's property box, and the settings for the added column can be made in the same property box. In other words, the series of operations of adding a column and configuring the added column can be done smoothly with the same feel as operating the property box. Also, after adding a column, the type is set from the options that can be set as a column component, so columns can be added and the type set without confusion.

S3020では、開発者用端末100は、コンテキストメニューのサブメニューとして、カラム別のアクションの選択肢を表示する。図32(a)に、S3020での表示例を示す。図32(a)は、図31(a)の状態からアクション3122が押下された場合の表示例である。図31(a)と図32(a)とで同じ表示物には同じ符号を付す。サブメニュー3210がコンテキストメニュー3120のアクション3122のサブメニューとして表示される。サブメニュー3210には、選択肢3211~3217が含まれる。選択肢3211は、データグリッド3110の全体に対する操作に応じて実行するアクションのアクションボードを開くための選択肢である。選択肢3212~3217は、データグリッド3110の各カラムが操作された場合に実行するカラム毎のアクションのアクションボードを開くための選択肢である。選択肢3212~3217はそれぞれ、カラム3111~3116に対応する。このとき、指定UI部品のデータグリッドと異なるデータグリッドのカラムのアクションボードに対応する選択肢は表示しない。 In S3020, the developer terminal 100 displays action options for each column as a submenu of the context menu. FIG. 32(a) shows an example of the display in S3020. FIG. 32(a) is an example of the display when action 3122 is pressed from the state of FIG. 31(a). The same display items are given the same reference numerals in FIG. 31(a) and FIG. 32(a). Submenu 3210 is displayed as a submenu of action 3122 of context menu 3120. Submenu 3210 includes options 3211 to 3217. Options 3211 are options for opening an action board for actions to be executed in response to an operation on the entire data grid 3110. Options 3212 to 3217 are options for opening an action board for actions for each column to be executed when each column of data grid 3110 is operated. Options 3212 to 3217 correspond to columns 3111 to 3116, respectively. In this case, options corresponding to the action board of a column of a data grid other than the data grid of the specified UI component will not be displayed.

S3021では、開発者用端末100は、データグリッド全体のアクションの選択肢(選択肢3211)またはカラム別のアクションの選択肢(3212~3217)のうちいずれかが選択されたか否を判定する。いずれかのアクションの選択肢が選択された場合にはS3022に進み、そうでない場合にはS3021で選択を待つ。 In S3021, the developer terminal 100 determines whether an action option for the entire data grid (option 3211) or an action option for each column (3212-3217) has been selected. If an action option has been selected, the process proceeds to S3022; if not, the process waits for a selection in S3021.

S3022では、開発者用端末100は、選択されたアクションの選択肢に対応するアクションボードを表示する。 In S3022, the developer terminal 100 displays an action board corresponding to the selected action option.

図32(b)に、データグリッド全体のアクションの選択肢(選択肢3211)に対応するアクションボードの表示例を示す。全体またはカラムの選択領域3220で「DATA GRID」が選択されており、アクションボード3211aがデータグリッド全体のアクションを入力する領域であることを示している。アクションボード3211aで設定された内容を実行するトリガーは予め定められており、構築済みアプリにおいて指定UI部品であるデータグリッドの領域のカラム外に表示される全体に関するボタンの押下がトリガーとなる。言い換えれば、このトリガーは、指定UI部品であるデータグリッド(表)に関するトリガーであって、当該データグリッドのカラムにかかわらないトリガーである。全体に関するボタンとは、前述したプロパディボックスの「DataGrid」のタブに対応する設定画面への設定で、表示すると設定したことにより表示されるボタンである。例えば前述したデータグリッドの削除ボタン、データグリッドの更新ボタンなどである。従って開発者は、アクションを実行するトリガーが何かというのは設定する必要がない(JavaScriptで記述する必要はない)。このアクションボード3211aに例えば、特定のカラムの全ての行の合計を算出して他のUI部品内に表示するというアクション、データグリッドに表示された内容をデータベースに保存するというアクション、他のUI画面に画面遷移するというアクション等をJavaScriptで記述することで設定可能である。 Figure 32 (b) shows an example of the display of an action board corresponding to the options (options 3211) for the action of the entire data grid. "DATA GRID" is selected in the entire or column selection area 3220, and the action board 3211a indicates that it is an area for inputting the action of the entire data grid. The trigger for executing the contents set in the action board 3211a is predetermined, and the trigger is pressing the button related to the entirety displayed outside the column of the area of the data grid, which is the specified UI part in the constructed application. In other words, this trigger is a trigger related to the data grid (table), which is the specified UI part, and is a trigger that is not related to the column of the data grid. The button related to the entirety is a button that is displayed by setting it to be displayed in the setting screen corresponding to the "DataGrid" tab of the property box described above. For example, it is the delete button of the data grid and the update button of the data grid described above. Therefore, the developer does not need to set what the trigger for executing the action is (it is not necessary to write it in JavaScript). For example, actions such as calculating the total of all rows in a specific column and displaying it in another UI component, saving the contents displayed in the data grid to a database, and transitioning to another UI screen can be set on this action board 3211a by writing them in JavaScript.

図32(c)に、データグリッドの特定のカラムのアクションの選択肢(選択肢3212)に対応するアクションボードの表示例を示す。選択領域3220で「MONTH」が選択されており、アクションボード3212aがラベルまたはカラムIDが「MONTH」のカラム(カラム3111)のアクションを入力する領域であることを示している。カラムのアクションボード3212aで設定された内容を実行するトリガーは予め定められており、構築済みアプリにおいて、指定UI部品のうち、対応するカラムのいずれかの行のセルの値が変更された、あるいは、対応するカラムのいずれかの行のセルに表示されたボタンが押下されたことがトリガーとなる。従って開発者は、アクションを実行するトリガーが何かというのは設定する必要がない(JavaScriptで記述する必要はない)。このアクションボード3212aに例えば、アクションボード3212aに対応するカラムの変更のあった行の値と、同じ行の他の第1のカラムの値との合計を算出し、同じ行の他の第2のカラムに表示するといったアクションを設定可能である。このアクションの例は、表の1列目の数値に変更があった場合に、同じ行の3列目に、変更後の1列目の数値と2列目の数値の合計を表示する、といったアクションである。すなわち、選択した選択肢3212に対応するカラムとは異なる、指定UI部品であるデータグリッドのうちの他のカラムに影響を与えるアクションの設定を受け付け可能である。 Figure 32 (c) shows an example of the display of an action board corresponding to the action option (option 3212) of a specific column of a data grid. "MONTH" is selected in the selection area 3220, and the action board 3212a indicates that it is an area for inputting an action for the column (column 3111) whose label or column ID is "MONTH". The trigger for executing the content set in the action board 3212a of the column is predetermined, and the trigger is that the value of a cell in any row of the corresponding column among the designated UI parts in the constructed application is changed, or a button displayed in a cell in any row of the corresponding column is pressed. Therefore, the developer does not need to set what the trigger for executing the action is (it does not need to be written in JavaScript). For example, an action can be set in this action board 3212a, such as calculating the sum of the value of the row in which the column corresponding to the action board 3212a has been changed and the value of another first column in the same row, and displaying the sum in another second column in the same row. An example of this action is when a value in the first column of a table is changed, the sum of the changed values in the first and second columns is displayed in the third column of the same row. In other words, it is possible to accept settings for an action that affects other columns of the data grid, which is the specified UI component, other than the column corresponding to the selected option 3212.

なお、選択領域3220で他のカラムを選択することで、アクションボードを開いた後にも、他のカラムのアクションボードに切り替えて表示することが可能である。 In addition, even after opening the action board, it is possible to switch to and display the action board of another column by selecting another column in the selection area 3220.

S3023では、開発者用端末100は、表示されたアクションボードに対するアクションの入力操作を受け付ける。この処理は、前述した図8のS802~S823の処理と同様である。 In S3023, the developer terminal 100 accepts an input operation of an action for the displayed action board. This process is similar to the processes of S802 to S823 in FIG. 8 described above.

S3024では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS3023に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S3024, the developer terminal 100 determines whether or not an operation to close the action board (an operation to end the action board processing) has been performed. If an operation to close the action board has not been performed, the process proceeds to S3023 and the processing is repeated. If an operation to close the action board has been performed, the action board is hidden, the display switches to the canvas of the selected UI screen, and the process returns to the UI editor processing.

このように、データグリッド(表)に含まれる各カラムに対して、より操作性良くアクションの設定を行うことができる。特に、サブメニュー3210に示したように、データグリッド(表)に含まれる全てのカラムのアクションボードに対応する選択肢を一覧表示するため、開発者は、カラム毎にアクションを設定可能であることを認識することができ、カラムに対するアクションの設定漏れなどが発生する可能性を低減することができる。また、指定UI部品であるデータグリッドのコンテキストメニューのサブメニューとして表示されるため、指定UI部品であるデータグリッドとの関係を明確に把握できる。すなわち、アクションボードで設定するアクションがどのデータグリッドのどのカラムに関するものであるかというのを混乱なく把握しながら設計作業を行うことができる。 In this way, actions can be set more easily for each column included in the data grid (table). In particular, as shown in submenu 3210, options corresponding to the action boards of all columns included in the data grid (table) are displayed in a list, so the developer can recognize that actions can be set for each column, reducing the possibility of forgetting to set an action for a column. In addition, because it is displayed as a submenu of the context menu of the data grid, which is the specified UI component, the relationship with the data grid, which is the specified UI component, can be clearly understood. In other words, design work can be performed while understanding without confusion which column of which data grid the action set in the action board relates to.

<アクション実行関連処理>
図33(a)に、定義情報の記録先となる開発環境300が実行する保存処理(記録制御処理)のフローチャートを示す。この処理は、前述の図4のS422において、開発者用端末100から送信された、定義情報を受信したことに連動して実行する処理である。
<Action execution related processing>
33A shows a flowchart of the save process (record control process) executed by the development environment 300, which is the recording destination of the definition information. This process is executed in conjunction with receiving the definition information sent from the developer terminal 100 in S422 of FIG. 4 described above.

また、図34に、開発者用端末100、開発環境300、実行環境400、アプリユーザー用端末200、201に記録される情報の遷移を図示する。図34は、図33(a)~図33(c)のフローチャートの処理による情報の遷移の様子を模式的に表した図である。 Figure 34 also illustrates the transition of information recorded in the developer terminal 100, development environment 300, execution environment 400, and application user terminals 200 and 201. Figure 34 is a schematic diagram showing the transition of information due to the processing of the flowcharts in Figures 33(a) to 33(c).

図33(a)のS3301では、開発環境300は、開発者用端末100から選択中アプリの定義情報(UI定義情報)を受信したか否かを判定する。ここで受信する定義情報は、前述の図4のS422において、開発者用端末100から送信されたものである。UI定義を受信した場合にはS3302に進み、そうでない場合にはS3301で待機する。 In S3301 of FIG. 33(a), the development environment 300 determines whether or not it has received definition information (UI definition information) of the selected app from the developer terminal 100. The definition information received here is the information sent from the developer terminal 100 in S422 of FIG. 4 described above. If a UI definition has been received, the process proceeds to S3302; if not, the process waits in S3301.

図34において、開発者用端末100のメモリ102に記録されているUI定義情報3401が、S3301で受信する定義情報である。本実施形態では、UI定義情報は「uiDef.json」というファイル名の、JSONフォーマット で記述された、 テキスト形式のファイルであるものする。JsonはJavaScript Object Notificationの略であり、JavaScriptで値を取り扱うためのドキュメント規格であり、データ記述言語である。UI定義情報3401には、イニシャルUI等のアプリに関する各種設定内容や、UI画面毎のUIコンポーネント(UI部品)の情報(配置位置、サイズ、色など)を定義する情報が含まれる。また、UI定義情報3401には、アクション記述部分3402が含まれている。このアクション記述部分3402は、各UI部品やキャンバスのアクションボードや関数の設定画面(創作関数の設定画面を含む)に入力された文字列である。アクション記述部分3402には、JavaScriptで記述されたアクションと、JavaScriptを入力することなく関数の設定画面で設定された内容を記述したJsonフォーマットの関数定義などが含まれる。このUI定義情報3401が開発者用端末100から開発環境300に送信され(アップロードされ)、S3301で開発環境300によって受信される。 In FIG. 34, the UI definition information 3401 recorded in the memory 102 of the developer terminal 100 is the definition information received in S3301. In this embodiment, the UI definition information is a text file with the file name "uiDef.json" written in JSON format. Json is an abbreviation for JavaScript Object Notification, and is a document standard for handling values in JavaScript and a data description language. The UI definition information 3401 includes various settings related to the application, such as the initial UI, and information defining the information (position, size, color, etc.) of the UI components (UI parts) for each UI screen. The UI definition information 3401 also includes an action description portion 3402. This action description portion 3402 is a character string entered into the action board of each UI part or canvas, or into the function setting screen (including the creation function setting screen). The action description portion 3402 includes an action written in JavaScript, and a function definition in Json format that describes the contents set in the function setting screen without entering JavaScript. This UI definition information 3401 is sent (uploaded) from the developer terminal 100 to the development environment 300, and is received by the development environment 300 in S3301.

S3302では、開発環境300は、UI定義情報をストレージ320のうち、ログイン開発者用の領域に保存する。この結果、図34に示す通り、開発環境300にUI定義情報3411が記録される。この保存の直後においては、開発環境300に記録されたUI定義情報3411は、開発者用端末100に記録されたUI定義情報3401と同じ情報である。 In S3302, the development environment 300 saves the UI definition information in an area of the storage 320 for the logged-in developer. As a result, as shown in FIG. 34, UI definition information 3411 is recorded in the development environment 300. Immediately after this saving, the UI definition information 3411 recorded in the development environment 300 is the same information as the UI definition information 3401 recorded in the developer terminal 100.

S3303では、開発環境300は、S3302で保存したUI定義情報からアクション情報を抽出する。すなわち、開発環境300は、図34のUI定義情報3411からアクション記述部分3412を抽出する。 In S3303, the development environment 300 extracts action information from the UI definition information saved in S3302. That is, the development environment 300 extracts the action description portion 3412 from the UI definition information 3411 in FIG. 34.

S3304では、開発環境300は、S3303で抽出したアクション記述部分3412から、実行環境用プログラムを生成して、ストレージ320のうちログイン開発者用の領域に保存する。すなわち、図34のUI定義情報3411から抽出したアクション記述部分3412に基づいて、実行環境用プログラム3413を生成して開発環境内に保存する。実行環境用プログラム3413はJavaScriptで記述されたテキストデータである。実行環境用プログラム3413は、アクション記述部分3412から取得したアクションボードに入力されていた文字列に加えて、実行環境の実行エンジンで実行するために必要な補充部分を追加したプログラムである。 In S3304, the development environment 300 generates an execution environment program from the action description portion 3412 extracted in S3303 and saves it in an area of the storage 320 for the logged-in developer. That is, based on the action description portion 3412 extracted from the UI definition information 3411 in FIG. 34, an execution environment program 3413 is generated and saved in the development environment. The execution environment program 3413 is text data written in JavaScript. The execution environment program 3413 is a program that adds supplementary parts necessary for execution by the execution engine of the execution environment to the character strings entered in the action board obtained from the action description portion 3412.

図33(a)で説明した保存処理によって開発環境300に保存されたUI定義情報3411と実行環境用プログラム3413が、デプロイ処理によって実行環境400にデプロイ(配置、保存、記録、構築)される。この処理は、前述した図24のS2423またはS2424で行われる。これによって、図34に図示した通り、実行環境400にUI定義情報3421と実行環境用プログラム3423が記録される。実行環境400にUI定義情報3421と実行環境用プログラム3423はそれぞれ、UI定義情報3411と実行環境用プログラム3413と同じ情報である。この状態が、アプリ生成された状態である。 The UI definition information 3411 and the program for execution environment 3413 saved in the development environment 300 by the save process described in FIG. 33(a) are deployed (placed, saved, recorded, constructed) to the execution environment 400 by the deploy process. This process is performed at S2423 or S2424 in FIG. 24 described above. As a result, the UI definition information 3421 and the program for execution environment 3423 are recorded in the execution environment 400 as shown in FIG. 34. The UI definition information 3421 and the program for execution environment 3423 in the execution environment 400 are the same information as the UI definition information 3411 and the program for execution environment 3413, respectively. This state is the state in which the app has been generated.

図33(b)に、実行環境400におけるアプリ実行処理のフローチャートを示す。この処理は、実行環境400の実行エンジンが実行する処理であり、アプリユーザー用端末200または201から、デプロイ済み(構築済み、生成済み)のアプリケーションに対するアクセスがあった場合に実行する処理である。 Figure 33 (b) shows a flowchart of the application execution process in the execution environment 400. This process is executed by the execution engine of the execution environment 400, and is executed when an application that has been deployed (constructed, generated) is accessed from the application user terminal 200 or 201.

図33(c)に、アプリユーザー用端末200または201おけるアプリ実行処理のフローチャートを示す。この処理は、アプリユーザー用端末200または201のCPU101が実行する処理であり、アプリユーザー用端末200または201のブラウザソフトで、実行環境400にデプロイ済み(構築済み、生成済み)のアプリケーションに対してアクセスした場合に実行する処理である。また、図33(b)の実行環境400におけるアプリ実行処理と、図33(c)のアプリユーザー用端末200または201におけるアプリ実行処理とは、連動して行われる処理である。以下、アプリユーザー用端末200または201による処理について、代表してアプリユーザー用端末200が実行するものとして説明する(アプリユーザー用端末201に関する説明は同様であるため省略する)。 Figure 33 (c) shows a flowchart of application execution processing in application user terminal 200 or 201. This processing is executed by CPU 101 of application user terminal 200 or 201, and is executed when an application that has been deployed (constructed, generated) in execution environment 400 is accessed using the browser software of application user terminal 200 or 201. The application execution processing in execution environment 400 in Figure 33 (b) and the application execution processing in application user terminal 200 or 201 in Figure 33 (c) are executed in conjunction with each other. Below, the processing by application user terminal 200 or 201 will be described assuming that it is executed by application user terminal 200 as a representative (the description of application user terminal 201 is similar and will be omitted).

図33(b)のS3311では、実行環境400は、アプリユーザー用端末200から送信されたUI定義情報の取得要求を受信したか否かを判定する。ここで受信するUI定義情報の取得要求は、後述する図33(c)のS3333でアプリユーザー用端末200から送信されるものである。UI定義情報の取得要求を受信した場合はS3312に進み、そうでない場合はS3311で待機する。 In S3311 of FIG. 33(b), the execution environment 400 determines whether or not a request to obtain UI definition information has been received from the application user terminal 200. The request to obtain UI definition information received here is the request sent from the application user terminal 200 in S3333 of FIG. 33(c) described below. If a request to obtain UI definition information has been received, the process proceeds to S3312; otherwise, the process waits in S3311.

S3312では、実行環境400は、UI定義情報をアプリユーザー用端末200に送信する。これによって、図34に図示した通り、実行環境400に記録されたUI定義情報3421がアプリユーザー用端末200にダウンロードされ、UI定義情報3431として記録される。UI定義情報3421とUI定義情報3431とは同じ情報である。 In S3312, the execution environment 400 transmits the UI definition information to the application user terminal 200. As a result, as shown in FIG. 34, the UI definition information 3421 recorded in the execution environment 400 is downloaded to the application user terminal 200 and recorded as UI definition information 3431. The UI definition information 3421 and the UI definition information 3431 are the same information.

S3313では、実行環境400は、アプリユーザー用端末200からアクション要求を受信したか否かを判定する。アクション要求とは、アクションボードに入力されたアクションの内容を実行する要求である。ここで受信するアクション要求は、後述する図33(c)のS3345でアプリユーザー用端末200から送信されるものである。アクション要求を受信した場合はS3314に進み、そうでない場合にはS3320に進む。 In S3313, the execution environment 400 determines whether or not an action request has been received from the application user terminal 200. An action request is a request to execute the content of the action entered in the action board. The action request received here is the one sent from the application user terminal 200 in S3345 of FIG. 33(c) described below. If an action request has been received, the process proceeds to S3314; if not, the process proceeds to S3320.

S3314では、実行環境400は、アプリユーザー用端末200から入力項目の値を受信したか否かを判定する。入力項目の値とは、アプリの画面に表示されるUI部品のうち、入力項目に分類されるUI部品に対して、アプリユーザー用端末200においてユーザーによって入力された値である。例えば、Textfieldに入力されたテキストである。本実施形態では、S3314の判定は、S3313で受信したアクション要求の中に入力項目の値が含まれていたか否かの判定であるものとする。入力項目の値を受信した場合(アクション要求に入力項目の値が含まれていた場合)にはS3315に進み、そうでない場合にはS3316へ進む。 In S3314, the execution environment 400 determines whether or not a value for an input item has been received from the application user terminal 200. The value of an input item is a value input by a user on the application user terminal 200 for a UI part classified as an input item among UI parts displayed on the screen of the application. For example, it is text input into a Textfield. In this embodiment, the determination in S3314 is a determination of whether or not the value of the input item was included in the action request received in S3313. If a value for the input item has been received (if the value of the input item was included in the action request), proceed to S3315; if not, proceed to S3316.

S3315では、実行環境400は、受信した入力項目の値を実行エンジンに含まれるメモリに一時記憶する。 In S3315, the execution environment 400 temporarily stores the received input item values in memory included in the execution engine.

S3316では、実行環境400は、実行環境用プログラム3424を実行することにより、要求されたアクションを実行する。入力項目の値を受信していた場合には、入力項目の値も用いてアクションを実行する。例えば、入力項目の値を引数として実行環境用プログラム3424のうち、要求されたアクションの部分を実行する。 In S3316, the execution environment 400 executes the execution environment program 3424 to execute the requested action. If a value for an input item has been received, the action is executed using the value for the input item as well. For example, the part of the execution environment program 3424 that executes the requested action is executed using the value of the input item as an argument.

S3317では、実行環境400は、S3316でのアクションの実行の結果、アプリユーザー用端末200に表示されるアプリの画面に表示すべき値である、出力項目の値があるか否かを判定する。例えば、アクションが“四則演算を行う”といったアクションであった場合には、演算の解が出力項目の値として得られる。また、例えばアクションが“画面遷移する”や、“データベースに記録する”といったアクションであった場合には、アクションの結果としての出力項目の値は無いこともある。出力項目の値がある場合にはS3318に進み、そうでない場合にはS3319へ進む。 In S3317, the execution environment 400 determines whether or not there is a value for an output item, which is a value to be displayed on the screen of the app displayed on the app user terminal 200, as a result of executing the action in S3316. For example, if the action is an action such as "perform arithmetic operations", the solution of the operation is obtained as the value of the output item. Also, for example, if the action is an action such as "transition to a screen" or "record in a database", there may not be a value for the output item as a result of the action. If there is a value for the output item, proceed to S3318, and if not, proceed to S3319.

S3318では、実行環境400は、S3316で実行したアクションの結果情報として、出力項目の値を含むアクション結果情報を生成する。 In S3318, the execution environment 400 generates action result information including the values of the output items as result information of the action executed in S3316.

S3319では、実行環境400は、S3316で実行したアクションの結果情報をアプリユーザー用端末200に送信する。S3318で出力項目の値を含むアクション結果情報が生成されていた場合には、出力項目の値もアプリユーザー用端末200に送信されることになる。そして、後述する図33(c)のS3348で、アプリユーザー用端末200の画面に出力項目の値が表示される。アクションの結果情報には、画面遷移の指示が含まれることもある。画面遷移の指示が含まれていた場合には、後述する図33(c)のS3347の処理によって、アプリユーザー用端末200のディスプレイ105に表示されるアプリの画面において画面遷移が発生する。 In S3319, the execution environment 400 sends result information of the action executed in S3316 to the application user terminal 200. If action result information including a value of the output item was generated in S3318, the value of the output item will also be sent to the application user terminal 200. Then, in S3348 of FIG. 33(c) described below, the value of the output item is displayed on the screen of the application user terminal 200. The action result information may also include an instruction for a screen transition. If an instruction for a screen transition is included, a screen transition occurs on the screen of the application displayed on the display 105 of the application user terminal 200 by the process of S3347 of FIG. 33(c) described below.

S3320では、実行環境400は、処理を終了するか否かを判定する。実行環境400は、処理を終了すると判定した場合(S3320でYes)、処理を終了する。実行環境400は、処理を終了しないと判定した場合(S3320でNo)、処理はS3313に戻る。例えば、S3350で後述するアプリを終了させるイベントが発生した場合に処理を終了すると判定する。
図33(c)のS3331では、アプリユーザー用端末200は(アプリユーザー用端末201を含むが、以下ではアプリユーザー用端末200を例として説明する)、インターネットブラウザソフトを用いて、実行環境400にデプロイ済み(構築済み、生成済み)のアプリケーションに対してアクセスを行う。より具体的には、デプロイ済みのアプリのURL(実行環境にアクセスするURL)を指定してアクセスする操作(例えばアプリのURLのリンクをクリックしたり、アドレスバーにアプリのURLを入力してEnterキーを押下する操作)があったことに応じて、アプリのURLにアクセス(接続)する。
In S3320, the execution environment 400 determines whether or not to end the process. When the execution environment 400 determines that the process is to be ended (Yes in S3320), the execution environment 400 ends the process. When the execution environment 400 determines that the process is not to be ended (No in S3320), the process returns to S3313. For example, the execution environment 400 determines that the process is to be ended when an event occurs in S3350 that ends the app, which will be described later.
33(c) , application user terminal 200 (including application user terminal 201, but the following description will be given taking application user terminal 200 as an example) uses internet browser software to access an application that has been deployed (constructed, generated) in execution environment 400. More specifically, in response to an operation of specifying the URL of a deployed application (URL for accessing the execution environment) and accessing it (for example, clicking on a link for the application's URL, or entering the application's URL in the address bar and pressing the Enter key), the application user terminal 200 accesses (connects to) the application's URL.

S3332では、アプリユーザー用端末200は、クライアント用プログラムを受信したか否かを判定する。実行環境400は、アプリユーザー用端末200からのアクセスを検知すると、実行環境の配信エンジン(配信エンジン415、455、465、475などのうちアクセスされた実行環境のもの)が、ストレージに記録されたクライアント用プログラム(クライアント用プログラム422、456c、466c、476cなどのうち、アクセスされた実行環境のもの)をアプリユーザー用端末200に送信する。S3332では、そのクライアント用プログラムを受信したか否かを判定する。クライアント用プログラムを受信した場合にはS3333に進み、そうでない場合にはS3332でライアント用プログラムの受信を待つ。 In S3332, the application user terminal 200 determines whether or not a client program has been received. When the execution environment 400 detects access from the application user terminal 200, the distribution engine of the execution environment (distribution engine 415, 455, 465, 475, etc., that of the accessed execution environment) transmits the client program recorded in the storage (client program 422, 456c, 466c, 476c, etc., that of the accessed execution environment) to the application user terminal 200. In S3332, it determines whether or not the client program has been received. If the client program has been received, the process proceeds to S3333, and if not, the process waits for reception of the client program in S3332.

S3333では、アプリユーザー用端末200は、実行環境400にUI定義情報の取得要求を送信する。S3332で受信したクライアント用プログラムに、実行環境にアクセスしたらまずはUI定義情報の取得要求を出す旨が定義されている。S3333はそれに従った処理である。ここで送信したUI定義情報取得要求が、前述した図33(b)のS3311において実行環境400に受信される。 In S3333, the application user terminal 200 sends a request to obtain UI definition information to the execution environment 400. The client program received in S3332 defines that when the execution environment is accessed, a request to obtain UI definition information is first issued. S3333 is a process that follows this definition. The request to obtain UI definition information sent here is received by the execution environment 400 in S3311 of FIG. 33(b) described above.

S3334では、アプリユーザー用端末200は、実行環境400からUI定義情報を受信したか否かを判定する。ここで受信されるUI定義情報は前述した図33(b)のS3312で実行環境400から送信されるものである。UI定義情報を受信した場合は、UI定義情報をメモリ102に記録してS3335に進み、そうでない場合にはS3334でUI定義情報の受信を待つ。UI定義情報はメモリ102(ワークメモリ)に一時的な情報として記録され、アプリを終了したことに応じて(アプリのURLへの接続終了に応じて)、自動的に消去するものとする。また、アプリユーザー用端末200は、メモリ102に記録したUI定義情報に基づいてアプリの画面をディスプレイ105に表示する。 In S3334, the application user terminal 200 determines whether or not UI definition information has been received from the execution environment 400. The UI definition information received here is the information sent from the execution environment 400 in S3312 in FIG. 33(b) described above. If UI definition information has been received, the UI definition information is recorded in memory 102 and the process proceeds to S3335; otherwise, the process waits for reception of UI definition information in S3334. The UI definition information is recorded in memory 102 (work memory) as temporary information, and is automatically deleted when the application is terminated (when the connection to the URL of the application is terminated). In addition, the application user terminal 200 displays the application screen on the display 105 based on the UI definition information recorded in memory 102.

S3335では、アプリユーザー用端末200は、アクションのトリガーが発生したか否かを判定する。具体的には、アプリの画面において、画面遷移を指示する操作(遷移先のキャンバスのアクションの起動トリガー)、アプリの画面に表示されたUI部品に対する操作(クリック等によるUI部品のアクションのトリガー)があったか否かを判定する。アクションのトリガーがあった場合にはS3336へ進み、そうでない場合にはS3350へ進む。 In S3335, the application user terminal 200 determines whether an action has been triggered. Specifically, it determines whether an operation has been performed on the application screen to instruct a screen transition (a trigger to activate an action on the canvas of the transition destination) or an operation has been performed on a UI part displayed on the application screen (a trigger to activate an action on a UI part by clicking, etc.). If an action has been triggered, the process proceeds to S3336; if not, the process proceeds to S3350.

S3336では、アプリユーザー用端末200は、メモリ102に記録されたUI定義情報(図34におけるUI定義情報3431)のうち、S3335で検出したトリガーに応じて実行すべきアクションに関する記述部分を抽出する。この記述部分は、JavaScript(プログラミング言語)で記載されたテキスト(文字列)の情報である。 In S3336, the application user terminal 200 extracts a description portion related to the action to be executed in response to the trigger detected in S3335 from the UI definition information (UI definition information 3431 in FIG. 34) recorded in the memory 102. This description portion is text (character string) information written in JavaScript (a programming language).

S3337では、アプリユーザー用端末200は、S3336で抽出した記述部分から、半角の「$ui」という文字列を先頭から検索する。 In S3337, the application user terminal 200 searches for the character string "$ui" in half-width characters from the beginning of the description portion extracted in S3336.

S3338では、アプリユーザー用端末200は、S3337の検索の結果、「$ui」という文字列があったか否かを判定する。「$ui」があった場合にはS3339に進み、そうでない場合にはS3343に進む。 In S3338, the application user terminal 200 determines whether or not the character string "$ui" is found as a result of the search in S3337. If "$ui" is found, the process proceeds to S3339; if not, the process proceeds to S3343.

S3339には、アプリユーザー用端末200は、S3338で見つかった「$ui」の文字列が、当該文字を含む一文の中で左辺にあるか否かを判定する。「一文」(1つの文)は、プログラミング言語での文字列において行終端記号(例えばセミコロン「;」)や、閉じ括弧「}」で区切られるまでの文字列である。すなわち、2つの文は行終端記号または閉じ括弧(′}′)で区切られる。検索で見つかった「$ui」が、一文の中で、「=」(等号、イコール)よりも左側に位置していれば、左辺にあると判定される。「$ui」が左辺にある場合にはS3340に進み、そうでない場合にはS3341に進む。 In S3339, the application user terminal 200 determines whether the character string "$ui" found in S3338 is on the left side of a sentence that contains that character. A "sentence" (one statement) is a string in a programming language that is separated by a line terminator (e.g., a semicolon ";") or a closing bracket "}". In other words, two statements are separated by a line terminator or a closing bracket ('}'). If "$ui" found in the search is located to the left of "=" (equal sign) in the sentence, it is determined to be on the left side. If "$ui" is on the left side, proceed to S3340, and if not, proceed to S3341.

S3340では、アプリユーザー用端末200は、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)に基づく情報を、メモリ102に生成した項目定義リスト(図34の項目定義リスト3433)に出力項目として記録する。具体的には、「$ui」で始まる「.」(ピリオド)で区切られた構造の要素文字列($ui.UI部品ID.対象となる情報の種別)からUI部品ID(項目コード、コンポーネント識別子)を取得し、そのUI部品が出力項目である旨を記録する。例えば、アクションAに関するトリガーが発生し、アクションAに関する記述部分から「$ui」が見つかり、それが左辺にあり、UI部品IDが「UI部品ID3」であった場合には、図34の項目定義リスト3433のように、出力項目にUI部品ID3がある旨が記録される。なお、項目定義リスト3433はワークメモリであるメモリ102に一時的に保持する情報であって、アクションの結果を受信して出力項目に反映するか(後述するS3348でNoまたはS3349の処理を終了)、アプリを終了したこと(S3350でYes)に応じて、自動的に消去するものとする。 In S3340, the application user terminal 200 records information based on the element string ($ui.UI component ID.type of target information) of a predetermined structure beginning with "$ui" found in S3338 as an output item in the item definition list (item definition list 3433 in FIG. 34) generated in memory 102. Specifically, the UI component ID (item code, component identifier) is obtained from the element string ($ui.UI component ID.type of target information) of a structure separated by "." (period) beginning with "$ui", and records that the UI component is an output item. For example, if a trigger related to action A occurs, "$ui" is found in the description part related to action A, it is on the left side, and the UI component ID is "UI component ID3", then it is recorded that UI component ID3 is in the output item, as in item definition list 3433 in FIG. 34. The item definition list 3433 is information that is temporarily stored in the memory 102, which is the work memory, and is automatically deleted when the results of the action are received and reflected in the output items (No in S3348 or the processing of S3349, described below, is ended) or when the app is terminated (Yes in S3350).

S3341では、アプリユーザー用端末200は、S3338で見つかった「$ui」の文字列が、当該文字を含む一文の中で左辺以外にあるか否かを判定する。左辺以外にある場合とは、右辺にある場合(「=」より右側にある)か、「=」を含まない分にある場合である。左辺以外にある場合にはS3342へ進み、そうでない場合にはS3337へ進む。なお、S3339でNoと判定された場合は、「$ui」の文字列が、当該文字を含む一文の中で左辺以外にあることと同義であるため、S3341の判定をせずにS3342へ進むものとしてもよい。 In S3341, the application user terminal 200 determines whether the character string "$ui" found in S3338 is found anywhere other than on the left side of a sentence containing the character. "Located anywhere other than on the left side" refers to the case where the character string is found on the right side (to the right of the "=") or in a portion not containing the "=". If the character string is found anywhere other than on the left side, the process proceeds to S3342, otherwise the process proceeds to S3337. Note that if the determination in S3339 is No, this is equivalent to the character string "$ui" being found anywhere other than on the left side of a sentence containing the character, and therefore the process may proceed to S3342 without making the determination in S3341.

S3342では、アプリユーザー用端末200は、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)に基づく情報を、メモリ102に生成した項目定義リスト(図34の項目定義リスト3433)に入力項目として記録する。具体的には、「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)からUI部品ID(項目コード、コンポーネント識別子)を取得し、そのUI部品が入力項目である旨を記録する。例えば、アクションAに関するトリガーが発生し、アクションAに関する記述部分から「$ui」が見つかり、それが右にあり、UI部品IDが「UI部品ID1」であった場合には、図34の項目定義リスト3433のように、入力項目にUI部品ID1がある旨が記録される。また、例えば、アクションAに関するトリガーが発生し、アクションAに関する記述部分から「$ui」が見つかり、それが「=」のない文にあり、UI部品IDが「UI部品ID2」であった場合には、図34の項目定義リスト3433のように、入力項目にUI部品ID2がある旨が記録される。 In S3342, the application user terminal 200 records information based on the element string ($ui.UI part ID.type of target information) of a predetermined structure beginning with "$ui" found in S3338 as an input item in the item definition list (item definition list 3433 in FIG. 34) generated in memory 102. Specifically, the UI part ID (item code, component identifier) is obtained from the element string ($ui.UI part ID.type of target information) of a predetermined structure beginning with "$ui", and records that the UI part is an input item. For example, if a trigger related to action A occurs, "$ui" is found in the description portion related to action A, it is found on the right, and the UI part ID is "UI part ID1", then it is recorded that UI part ID1 is in the input item, as in item definition list 3433 in FIG. 34. Also, for example, if a trigger related to action A occurs, "$ui" is found in the description section related to action A, and it is in a sentence without "=", and the UI part ID is "UI part ID2", then it is recorded that UI part ID2 is in the input item, as shown in item definition list 3433 in Figure 34.

S3342の処理を終えると、S3337に進み、S3336で抽出した記述部分の続きの部分において、さらに「$ui」の文字列を検索し、S3338で「$ui」が無いと判定されるまでS3339~S3342の処理を繰り返す。すなわち、S3336で抽出した記述部分に含まれる全ての$uiの文字列について、S3339~S3342の処理を行い、入力項目であるか出力項目であるかを項目定義リスト3433に記録する。 After completing the process of S3342, the process proceeds to S3337, where the character string "$ui" is further searched for in the continuation of the description portion extracted in S3336, and the processes of S3339 to S3342 are repeated until it is determined in S3338 that "$ui" is not present. In other words, the processes of S3339 to S3342 are performed for all $ui character strings contained in the description portion extracted in S3336, and whether they are input items or output items is recorded in the item definition list 3433.

S3343では、アプリユーザー用端末200は、S3335でアクションのトリガーがあったと判定した時点で、項目定義リスト3433に記録された入力項目の対象となる情報に、値があるかどうかを判定する。例えば、S3336で抽出した記述部分に「$ui.UI部品ID1.value」と記載されていた場合、UI部品ID1のUI部品内の「value」という種別の情報に値があるかどうかを判定する。UI部品ID1のUI部品がTextFieldであった場合には、valueは、そのTextFieldに入力されたテキスト(文字列)である。すなわち、アプリの画面に表示されたTextFieldであるUI部品ID1に対して、アプリのユーザーがキーボードでテキストが入力されているかを判定し、テキストが入力されていればYesと判定し、空欄であればNoと判定する。この判定を、項目定義リスト3433に記録されたすべての入力項目について行う。入力項目の対象となる情報に、値がある場合にはS3344へ進み、そうでない場合にはS3345へ進む。 In S3343, when it is determined in S3335 that an action has been triggered, the application user terminal 200 determines whether the information targeted by the input item recorded in the item definition list 3433 has a value. For example, if "$ui.UI part ID1.value" is written in the description portion extracted in S3336, it determines whether the information of the type "value" in the UI part with UI part ID1 has a value. If the UI part with UI part ID1 is a TextField, the value is the text (character string) entered in that TextField. In other words, it determines whether the user of the application has entered text with the keyboard for UI part ID1, which is a TextField displayed on the screen of the application, and if text has been entered, it determines Yes, and if it is blank, it determines No. This determination is made for all input items recorded in the item definition list 3433. If the information targeted by the input item has a value, proceed to S3344; if not, proceed to S3345.

S3344では、アプリユーザー用端末200は、入力項目の値を含む、S3335で検知したトリガーに対応するアクションの実行を要求するアクション要求を生成する。例えば、入力項目の値として、アプリユーザー用端末200のディスプレイ105に表示されるアプリの画面に表示されたTextFieldであるUI部品ID1に対して、アプリのユーザーがキーボードで入力したテキストの情報を含むアクション要求を生成する。 In S3344, the application user terminal 200 generates an action request including the value of the input item, requesting the execution of an action corresponding to the trigger detected in S3335. For example, an action request is generated including, as the value of the input item, information on the text entered by the application user on the keyboard for UI part ID1, which is a TextField displayed on the screen of the application displayed on the display 105 of the application user terminal 200.

S3345では、アプリユーザー用端末200は、S3335で検知したトリガーに対応するアクションの実行を要求するアクション要求を実行環境400に送信する。S3344で入力項目の値ありアクションが生成されていた場合には、入力項目の値も実行環境400に送信される。例えば、入力項目の値として、アプリユーザー用端末200のディスプレイ105に表示されるアプリの画面に表示されたTextFieldであるUI部品ID1に対して、アプリのユーザーがキーボードで入力したテキストの情報が実行環境400に送信される。ここで送信したアクション要求が、実行環境400で実行される前述した図33(b)のS3313で実行環境400に受信され、S3314~S3319で説明した通り、S3335で検知したトリガーに応じたアクションが実行環境400で実行される。 In S3345, the application user terminal 200 transmits to the execution environment 400 an action request requesting the execution of an action corresponding to the trigger detected in S3335. If an action with a value for an input item was generated in S3344, the value of the input item is also transmitted to the execution environment 400. For example, as the value of the input item, text information entered by the application user on the keyboard for UI part ID1, which is a TextField displayed on the application screen displayed on the display 105 of the application user terminal 200, is transmitted to the execution environment 400. The action request transmitted here is received by the execution environment 400 at S3313 in FIG. 33(b) described above, which is executed in the execution environment 400, and the action corresponding to the trigger detected in S3335 is executed in the execution environment 400, as described in S3314 to S3319.

S3346では、アプリユーザー用端末200は、S3345で送信したアクション要求に対応するアクションの結果を実行環境400から受信したか否かを判定する。アクションの結果を受信した場合にはS3347へ進み、そうでない場合にはS3346でアクションの結果の受信を待つ。 In S3346, the application user terminal 200 determines whether or not the result of the action corresponding to the action request sent in S3345 has been received from the execution environment 400. If the result of the action has been received, the process proceeds to S3347; if not, the process waits for the result of the action in S3346.

S3347では、アプリユーザー用端末200は、S3346で受信したアクションの結果を反映してディスプレイ105に表示されたアプリの画面を更新する。この時もメモリ102に保持したUI定義情報に基づいて表示を行う。例えば、アクションの結果に画面遷移の指示があった場合には、画面遷移を実行する。 In S3347, the application user terminal 200 updates the application screen displayed on the display 105 to reflect the result of the action received in S3346. At this time, too, the display is based on the UI definition information stored in the memory 102. For example, if the result of the action is an instruction to perform a screen transition, the screen transition is executed.

S3348では、アプリユーザー用端末200は、S3346で受信したアクションの結果に、出力項目の値が含まれていたか否を判定する。出力項目の値が含まれていた場合にはS3349に進み、そうでない場合にはS3350へ進む。 In S3348, the application user terminal 200 determines whether the result of the action received in S3346 includes a value for the output item. If a value for the output item is included, the process proceeds to S3349; if not, the process proceeds to S3350.

S3349では、アプリユーザー用端末200は、S3346で受信したアクションの結果に含まれる出力項目の値を、メモリ102に保持した項目定義リスト3433に記録した出力項目の情報に基づいて、ディスプレイ105に表示される出力項目に表示する。これによって例えば、対象となる情報の種別がvalueであれば出力項目のUI部品に出力項目の値となるテキストや数値が表示されたり、対象となる情報の種別がcolorであれば出力項目のUI部品の色が出力項目の値が示す色に変更されたりする。 In S3349, the application user terminal 200 displays the value of the output item included in the result of the action received in S3346 in the output item displayed on the display 105 based on the information of the output item recorded in the item definition list 3433 held in the memory 102. As a result, for example, if the type of information in question is "value", text or a numerical value that is the value of the output item is displayed in the UI component of the output item, or if the type of information in question is "color", the color of the UI component of the output item is changed to the color indicated by the value of the output item.

S3350では、アプリユーザー用端末200は、アプリを終了させるイベントがあったか否かを判定する。アプリを終了させるイベントには、例えば、アプリのURLが示すアクセス先への接続の切断(インターネットブラウザを閉じる、アプリユーザー用端末200の電源を切る、関係のない他のURLへの接続に変更する、など)がある。アプリを終了させるイベントが無い場合にはS3335に進み、アプリを終了させるイベントがあった場合には、アプリの画面の非表示として図33(c)の処理を終了する。 In S3350, the application user terminal 200 determines whether an event that terminates the application has occurred. An event that terminates the application is, for example, disconnection of the connection to the access destination indicated by the application's URL (closing the Internet browser, turning off the application user terminal 200, changing the connection to another unrelated URL, etc.). If there is no event that terminates the application, the process proceeds to S3335, and if there is an event that terminates the application, the application screen is hidden and the process of FIG. 33(c) is terminated.

図10(d)に示したアクションボード910に入力されたプログラミング言語での文字列を例にとって、S3338~S3342で説明した「$ui」を含む文字列について入力項目と出力項目のいずれであるかを判別して仕分ける処理について、より具体的に説明する。 Using the example of a character string in a programming language input to the action board 910 shown in Figure 10 (d), we will now explain in more detail the process of determining whether a character string containing "$ui" described in S3338 to S3342 is an input item or an output item and sorting it.

2行目には「const userid = $ui.text_field_a.value;」と記載されている。この文において、「$ui」が右辺にあるため、S3342の処理で、項目定義リストに「text_field_a」が入力項目として記録される。すなわち「userid」という変数の値に、アプリの画面において「text_field_a」にユーザーが入力した値が取得されて設定される。 The second line states "const userid = $ui.text_field_a.value;" In this statement, because "$ui" is on the right-hand side, "text_field_a" is recorded as an input item in the item definition list in the processing of S3342. In other words, the value entered by the user into "text_field_a" on the app screen is obtained and set as the value of the variable "userid".

4行目の文において、「$ui」を含む「$ui.text_area_a.value」との文字列が左辺にあるため、S3340の処理で、項目定義リストに「text_area_a」が出力項目として記録される。すなわち「text_area_a」というUI部品に、「=」の右辺が示す値(アクションの結果得られる出力値)が表示されることとなる。この文は、「text_area_a」が出力項目であるという定義に加えて、その出力項目に「=」の右辺が示す値(アクションの結果得られる出力値)を出力するという処理(ロジック)を含んでいる。このように、ロジック(入力項目と出力項目との少なくとも一方の定義とは異なる処理)を含む文の中において、入力項目と出力項目の定義も行えるというのが本実施形態の特徴的な部分の1つである。6行目も同様に、ロジック部分であるとともに、「$ui.text_area_a.value」が左辺にあるため出力項目として扱われる。 In the statement on line 4, because the character string "$ui.text_area_a.value" containing "$ui" is on the left side, "text_area_a" is recorded as an output item in the item definition list in the processing of S3340. In other words, the value indicated by the right side of "=" (the output value obtained as a result of the action) is displayed in the UI component "text_area_a". In addition to defining "text_area_a" as an output item, this statement contains processing (logic) that outputs the value indicated by the right side of "=" (the output value obtained as a result of the action) to the output item. In this way, one of the distinctive features of this embodiment is that input items and output items can also be defined in a statement that contains logic (processing that is different from the definition of at least one of the input items and output items). Similarly, the sixth line is a logic section, and because "$ui.text_area_a.value" is on the left side, it is treated as an output item.

また、以下に、「=」の無い文に「$ui」があるアクションの文字列の例を示す Below is an example of an action string that has "$ui" in a statement without "=".

(各行先頭の数字は行数を示す補助文字であってプログラミング言語の本文ではない)
1 SQLSave({
2 PREF_CODE: $ui.PREF_CODE.value,
3 PREF_NAME: $ui.PREF_NAME.value
4 });
5 // 画面遷移
6 $fn.nextUI(′List_ip_demo′);
上記のプログラミング言語での文字列は、アプリの画面の入力値(`$ui.PREF_CODE.value` , $ui.PREF_NAME.value)をSQLSave関数のパラメータに使用してデータベースへ登録するアクションである。この場合、SQLSave関数のパラメータとして使用される$ui.{部品ID}.{対象となる情報の種別}は(=の左辺ではないため)入力項目を示すものとして識別される。
(The numbers at the beginning of each line are auxiliary characters that indicate the line number and are not the programming language text itself.)
1 SQLSave({
2 PREF_CODE: $ui. PREF_CODE. value,
3 PREF_NAME: $ui. PREF_NAME. value
4 });
5 // Screen transition 6 $fn. nextUI('List_ip_demo');
The character string in the above programming language is an action to register the input value ('$ui.PREF_CODE.value', $ui.PREF_NAME.value) of the application screen in the database as a parameter of the SQLSave function. In this case, $ui.{part ID}.{target information type} used as a parameter of the SQLSave function is identified as indicating an input item (because it is not on the left side of =).

また、「$ui」を用いた所定の構造の要素文字列において、対象となる情報の種別は、value以外でもよく、例えば色でも良い。例えば、「$ui.UI部品ID.color = ″#008000″;」と記述することで、UI部品の色を変更することができる。 In addition, in an element string of a specified structure using "$ui", the type of information to be targeted may be something other than value, such as color. For example, the color of a UI component can be changed by writing "$ui.UIComponentID.color = "#008000";".

本実施形態では、アクションボードに入力するアクションの記述において、「$ui」という特定の識別子が付された要素文字列の、文字列中の位置(より具体的には、1つの文の中における位置)に応じて、その要素文字列が示すUI部品を入力項目して扱うか、出力項目として扱うかを、書き表せる(定義できる)ようにしている。従来であれば、入力項目とするか出力項目とするかはプログラミング言語でアクションの内容を入力する領域とは別の設定画面において行っていた。あるいは従来であれば、プログラミング言語でアクションの内容を入力する領域に記述するにしても、処理自体を示すロジック部分の文とは別の文で、いったん、入力項目して扱うか、出力項目として扱うかという変数を用いた宣言を行う必要があった。これに対し、本実施形態では、入力項目と出力項目の定義を、プログラミング言語でアクションロジックを記述した文字列の任意の記述箇所で定義することができる。そのため、ロジック記述部分の近辺で、そのロジックで用いる入力項目と出力項目を定義することができ、ロジックを記述する際に、そのロジックで用いる入力項目、出力項目を容易に設定することができる。また、本実施形態では、入力項目と出力項目に関数設定画面とアクションロジックの記述部分の間における値の受け渡しを、一度変数として定義する必要がない。そのため開発者が煩雑な変数管理をする必要が低減し、変数管理が容易となる。従ってアクションを記述する際のミスを生む要因が減り、ミスを低減することができる。このように、本実施形態では、プログラミング言語で入力されるロジックに用いる入力項目または/及び出力項目をより容易に設定することが可能である。 In this embodiment, in the description of an action to be entered into the action board, depending on the position of the element string with a specific identifier "$ui" in the string (more specifically, the position in a sentence), it is possible to write (define) whether the UI part indicated by the element string is to be treated as an input item or an output item. Conventionally, whether to treat it as an input item or an output item was determined in a setting screen separate from the area where the content of the action is entered in a programming language. Or, conventionally, even if the content of the action was described in the area where the content of the action is entered in a programming language, it was necessary to declare using a variable whether to treat it as an input item or an output item in a sentence separate from the sentence of the logic part indicating the processing itself. In contrast, in this embodiment, the definition of the input item and the output item can be defined at any description point of the string describing the action logic in a programming language. Therefore, the input item and the output item to be used in the logic can be defined near the logic description part, and the input item and the output item to be used in the logic can be easily set when describing the logic. Furthermore, in this embodiment, there is no need to define variables once for the transfer of values between the function setting screen and the action logic description portion of the input and output items. This reduces the need for developers to perform cumbersome variable management, making variable management easier. This reduces the factors that can cause errors when describing actions, making it possible to reduce errors. In this way, in this embodiment, it is possible to more easily set input and/or output items used in logic entered in a programming language.

また、「$ui」という特定の識別子が付された要素文字列の位置によって入力項目/出力項目のいずれとするかを書き表す手法は一般的ではないため、通常のJavaScriptのプログラミング言語に基づくプログラム実行では、入力項目/出力項目のいずれとするかが上手く解釈されず、意図通り動作しない。そこで本実施形態では、S3338~S3342で説明した「$ui」を含む文字列について入力項目と出力項目のいずれであるかを特定して仕分ける処理を行うことで、正しく動作する仕組みとしている。 In addition, the method of expressing whether an element string with the specific identifier "$ui" is an input item or an output item based on its position is not common, so when a program is executed based on the normal JavaScript programming language, it does not properly interpret whether it is an input item or an output item, and does not operate as intended. Therefore, in this embodiment, a process is performed to identify whether a string containing "$ui" as an input item or an output item, as explained in S3338 to S3342, and to classify it, thereby creating a mechanism that operates correctly.

本実施形態では、特定の識別子を半角の「$ui」とした例を説明したが、これに限るものではない。プログラミング言語において既存の他の識別子と混同されない文字列であれば他の文字列を識別子としてもよく、例えば、半角の「_inputoutput」としても良い。半角の「$」はユニコードのドルである。半角の「_」はユニコードのアンダーバーである。 In this embodiment, an example has been described in which the specific identifier is the half-width character "$ui", but this is not limited to this. Any other character string that is not confused with other existing identifiers in the programming language may be used as the identifier, for example, the half-width character "_inputoutput". The half-width character "$" is a dollar character in Unicode. The half-width character "_" is an underscore character in Unicode.

また、本実施形態では、図33(a)のS3304で説明した通り、開発環境300が、UI定義情報に基づいて実行環境400で実行すべきプログラムである実行環境用プログラム3414を生成し、それを実行環境400にデプロイする。アプリの実行時には、アプリユーザー用端末200はUI定義情報3431に基づいて処理を実行し、実行環境400は実行環境用プログラム3423に基づいて処理を実行する。また、図33(c)のS3338~S3342で説明した通り、アプリユーザー用端末200が、UI定義情報に基づいてアプリユーザー用端末200で実行する処理で必要な項目定義リスト3433を生成する。このようにすることで、アプリの開発者は、構築済みアプリが実行される際に、実行環境400で実行する処理に必要となる情報とアプリユーザー用端末200で実行する処理に必要となる情報とを、開発者用端末100で開発環境300にアクセスしてアプリを開発する際には特段意識して区別する必要が無い。従って、開発するアプリケーションの実行の際に実行環境と端末装置とでそれぞれ用いる情報を開発者が明確に分別するように管理して開発する手間を低減し、ソフトウェア開発をより容易に行える。 In this embodiment, as described in S3304 of FIG. 33(a), the development environment 300 generates the execution environment program 3414, which is a program to be executed in the execution environment 400, based on the UI definition information, and deploys it to the execution environment 400. When the application is executed, the application user terminal 200 executes processing based on the UI definition information 3431, and the execution environment 400 executes processing based on the execution environment program 3423. Also, as described in S3338 to S3342 of FIG. 33(c), the application user terminal 200 generates an item definition list 3433 required for processing executed in the application user terminal 200 based on the UI definition information. In this way, when the application developer accesses the development environment 300 with the developer terminal 100 to develop the application, there is no need to be particularly aware of and distinguish between information required for processing executed in the execution environment 400 and information required for processing executed in the application user terminal 200 when the constructed application is executed. This allows developers to clearly separate and manage the information used in the execution environment and the terminal device when executing the application they are developing, reducing the amount of work required for development and making software development easier.

なお、本実施形態では、開発環境300における保存処理の際に実行環境用プログラム3414を生成する例を説明したが、開発環境300は実行環境用プログラム3414を生成せず、実行環境400にUI定義情報3421を記録した後に、実行環境400がUI定義情報3421に基づいて実行環境用プログラム3423を生成するようにしてもよい。 In this embodiment, an example has been described in which the program for the execution environment 3414 is generated during the save process in the development environment 300. However, the development environment 300 may not generate the program for the execution environment 3414, and instead, the execution environment 400 may record the UI definition information 3421 in the execution environment 400 and then generate the program for the execution environment 3423 based on the UI definition information 3421.

<アクション実行関連処理の変形例>
図35(a)に、定義情報の記録先となる開発環境300が実行する保存処理(記録制御処理)のフローチャートの変形例を示す。この処理は、前述の図4のS422において、開発者用端末100から送信された、定義情報を受信したことに連動して実行する処理である。
<Modification of Action Execution Related Processing>
35(a) shows a modified flowchart of the save process (record control process) executed by the development environment 300, which is the recording destination of the definition information. This process is executed in conjunction with receiving the definition information sent from the developer terminal 100 in S422 of FIG. 4 described above.

また、図36に、開発者用端末100、開発環境300、実行環境400、アプリユーザー用端末200、201に記録される情報の遷移の変形例を図示する。図36は、図35(a)~図35(c)のフローチャートの処理による情報の遷移の様子を模式的に表した図である。図36において、図34と同じ情報には同じ符号を付す。 FIG. 36 illustrates a modified example of the transition of information recorded in the developer terminal 100, development environment 300, execution environment 400, and application user terminals 200 and 201. FIG. 36 is a diagram that shows a schematic representation of the transition of information through the processing of the flowcharts in FIGS. 35(a) to 35(c). In FIG. 36, the same information as in FIG. 34 is given the same reference numerals.

図36では、アプリユーザー用端末200においてUI定義情報に基づいて項目定義リスト3433を生成する処理を行う代わりに、開発環境300でUI定義情報に基づいてクライアント用UI定義情報3615を生成する。そして、このクライアント用UI定義情報3615を実行環境400にデプロイし(クライアント用UI定義情報3625として実行環境400に記録される)、さらに実行環境400からアプリユーザー用端末200に送信する(クライアント用UI定義情報3635としてアプリユーザー用端末200に記録される)。アクションの実行の際には、アプリユーザー用端末200は、クライアント用UI定義情報3635に基づいて処理を行う。 In FIG. 36, instead of performing a process of generating item definition list 3433 based on UI definition information in application user terminal 200, client UI definition information 3615 is generated based on UI definition information in development environment 300. This client UI definition information 3615 is then deployed to execution environment 400 (recorded in execution environment 400 as client UI definition information 3625), and further transmitted from execution environment 400 to application user terminal 200 (recorded in application user terminal 200 as client UI definition information 3635). When an action is executed, application user terminal 200 performs processing based on client UI definition information 3635.

図36では、図34と異なり、アプリユーザー用端末200にUI定義情報を送信しない(アプリユーザー用端末200に一時的にも記録させない)構成としている。このようにすることで、開発したアプリの詳細な定義がアプリユーザー用端末200を介して漏洩することを防止し、開発されたアプリの構成についての秘匿性を高めている。従って例えば、開発したアプリの少なくとも一部(例えばアクションボードに記述したJavaScriptのコード)を模倣したアプリなどが第3者によって作成される可能性を低減することができる。また、アプリユーザー用端末200において、アクションのトリガーが発生するたびにUI定義情報を解析して項目定義リスト3433を生成する処理(図33(c)のS3338~S3342の処理)を行わなくてよい。その分、アプリユーザー用端末200における処理負荷を低減し、快適なレスポンス(応答速度)のアプリ動作を実現することができる。 In FIG. 36, unlike FIG. 34, the UI definition information is not sent to the application user terminal 200 (it is not even temporarily recorded in the application user terminal 200). This prevents detailed definitions of the developed application from being leaked via the application user terminal 200, and increases confidentiality of the configuration of the developed application. Therefore, for example, it is possible to reduce the possibility that an application that imitates at least a part of the developed application (for example, JavaScript code written in the action board) is created by a third party. In addition, the application user terminal 200 does not need to perform a process of analyzing the UI definition information and generating the item definition list 3433 (the process of S3338 to S3342 in FIG. 33(c)) every time an action trigger occurs. This reduces the processing load on the application user terminal 200, and allows the application to operate with a smooth response (response speed).

図35(a)のS3501~S3504は、前述した図33(a)のS3301~3304と同じ処理であるため説明を省略する。図35(a)では図33(a)の処理に加えて、S3505以降の処理を行う。 Steps S3501 to S3504 in FIG. 35(a) are the same as steps S3301 to S3304 in FIG. 33(a) described above, and so a description thereof will be omitted. In FIG. 35(a), in addition to the processing in FIG. 33(a), processing from S3505 onwards is performed.

S3505では、開発環境300は、クライアント用UI定義情報3615を生成する。クライアント用UI定義情報3615は例えば「uiDef2.json」というファイル名のJson形式のファイルであるものとする。クライアント用UI定義情報3615には、UI定義情報3411から取得した情報として、イニシャルUI等のアプリに関する各設定情報、UI画面毎のUI部品(コンポーネント)の情報(UI部品IDやプロパティで設定された内容、UI部品の配置位置やサイズなど)、キャンバスのアクショションの識別子、UI部品のアクションの識別子などが含まれる。また、クライアント用UI定義情報3615には、アクション毎の入出力項目定義(入力項目、出力項目にそれぞれどの部品があるかという定義)も記録される。S3505の時点ではアクション毎の入出力項目定義の中身は未挿入である(後述するS3506~3512の処理で挿入される)。また、アクションボードに記載されたJavaScript(プログラミング言語)で記述された文字列(アクションのソースコード)自体は記録されないものとする。すなわち、生成されるクライアント用UI定義情報3615は、アクションの識別子やアクション毎の入出力項目定義の情報を含むが、アクションの動作内容を示す情報は含まない。 In S3505, the development environment 300 generates the client UI definition information 3615. The client UI definition information 3615 is assumed to be a Json format file with the file name "uiDef2.json", for example. The client UI definition information 3615 includes, as information obtained from the UI definition information 3411, various setting information related to the application, such as the initial UI, information on the UI parts (components) for each UI screen (such as the UI part ID and the contents set in the properties, the layout position and size of the UI parts), the canvas action identifier, and the UI part action identifier. The client UI definition information 3615 also records the input/output item definition for each action (definition of which parts are in each input item and output item). At the time of S3505, the contents of the input/output item definition for each action have not been inserted (they will be inserted in the processing of S3506 to S3512 described later). Furthermore, the character string (action source code) written in JavaScript (a programming language) on the action board is not recorded. In other words, the generated client UI definition information 3615 includes the action identifier and information on the input/output item definitions for each action, but does not include information indicating the operation content of the action.

S3506では、開発環境300は、UI定義情報3411のうち、アクション記述部分3412を抽出する。この処理では、特定のアクションに関する記述だけではなく、全てのアクションに関する記述部分を抽出する。 In S3506, the development environment 300 extracts the action description portion 3412 from the UI definition information 3411. In this process, description portions related to all actions are extracted, not just descriptions related to specific actions.

S3507では、開発環境300は、S3506で抽出したアクション記述部分について、「$UI」の文字列を先頭から検索する。 In S3507, the development environment 300 searches for the string "$UI" from the beginning of the action description portion extracted in S3506.

S3508では、開発環境300は、S3337の検索の結果、「$ui」という文字列があったか否かを判定する。「$ui」があった場合にはS3509に進み、そうでない場合には処理を終了する。S3508でNoとなるのは、全ての「$ui」の検索が終わったか、アクション記述部分に全く「$ui」が無かった場合である。 In S3508, the development environment 300 determines whether or not the character string "$ui" was found as a result of the search in S3337. If "$ui" was found, the process proceeds to S3509, otherwise the process ends. S3508 returns No when all "$ui" searches have been completed or when no "$ui" was found in the action description section.

S3509では、開発環境300は、図33(c)のS3339と同様、S3508で見つかった「$ui」の文字列が、当該文字を含む一文の中で左辺にあるか否かを判定する。「$ui」が左辺にある場合にはS3510に進み、そうでない場合にはS3511に進む。 In S3509, the development environment 300 determines whether the character string "$ui" found in S3508 is on the left side of a sentence that contains that character, similar to S3339 in FIG. 33(c). If "$ui" is on the left side, the process proceeds to S3510; if not, the process proceeds to S3511.

S3510では、開発環境300は、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)に基づく情報を、S3505で生成したクライアント用UI定義情報3615に出力項目として記録する。より詳しくは、クライアント用UI定義情報3615のうち、出力項目を定義する配列に、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)からUI部品IDを取得して、アクション毎の入出力項目定義のうち、“uiItemsOut”の配列に記録する。例えばUI部品IDが「RESULT」であることを示す「$ui」が左辺に見つかった場合、図36に図示したように記録される。 In S3510, the development environment 300 records information based on the element string of the specified structure beginning with "$ui" found in S3338 ($ui.UI component ID.type of target information) as an output item in the client UI definition information 3615 generated in S3505. More specifically, in the client UI definition information 3615, a UI component ID is obtained from the element string of the specified structure beginning with "$ui" found in S3338 ($ui.UI component ID.type of target information) and recorded in the "uiItemsOut" array of the input/output item definition for each action in an array that defines the output items. For example, if "$ui", indicating that the UI component ID is "RESULT", is found on the left side, it is recorded as shown in FIG. 36.

S3511では、開発環境300は、図33(c)のS3341と同様、S3508で見つかった「$ui」の文字列が、当該文字を含む一文の中で左辺以外にあるか否かを判定する。左辺以外にある場合にはS3512へ進み、そうでない場合にはS3507へ進む。なお、S3509でNoと判定された場合は、「$ui」の文字列が、当該文字を含む一文の中で左辺以外にあることと同義であるため、S3511の判定をせずにS3512へ進むものとしてもよい。 In S3511, the development environment 300 determines whether the character string "$ui" found in S3508 is found anywhere other than on the left side of a sentence containing the character, similar to S3341 in FIG. 33(c). If it is found anywhere other than on the left side, the process proceeds to S3512, otherwise the process proceeds to S3507. Note that if the determination in S3509 is No, this is equivalent to the character string "$ui" being found anywhere other than on the left side of a sentence containing the character, so the process may proceed to S3512 without making the determination in S3511.

S3512では、開発環境300は、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)に基づく情報を、S3505で生成したクライアント用UI定義情報3615に入力項目として記録する。より詳しくは、クライアント用UI定義情報3615のうち、入力項目を定義する配列に、S3338で見つかった「$ui」で始まる所定の構造の要素文字列($ui.UI部品ID.対象となる情報の種別)からUI部品IDを取得して、アクション毎の入出力項目定義のうち、“uiItemsIn”の配列に記録する。例えばUI部品IDが「INPUT_1」であることを示す「$ui」が右辺に見つかった場合、図36に図示したように記録される。また、例えばUI部品IDが「INPUT_2」であることを示す「$ui」が「=」のない文に見つかった場合、図36に図示したように記録される。 In S3512, the development environment 300 records information based on the element string of the specified structure beginning with "$ui" found in S3338 ($ui.UI component ID.Type of target information) as an input item in the client UI definition information 3615 generated in S3505. More specifically, in the client UI definition information 3615, a UI component ID is obtained from the element string of the specified structure beginning with "$ui" found in S3338 ($ui.UI component ID.Type of target information) and recorded in the "uiItemsIn" array of the input/output item definition for each action in the array that defines the input item. For example, if "$ui" indicating that the UI component ID is "INPUT_1" is found on the right side, it is recorded as shown in FIG. 36. Also, for example, if "$ui", indicating that the UI part ID is "INPUT_2", is found in a sentence without "=", it will be recorded as shown in Figure 36.

S3512の処理を終えると、S3507に進み、S3506で抽出した記述部分の続きの部分において、さらに「$ui」の文字列を検索し、S3508で「$ui」が無いと判定されるまでS3507~S3512の処理を繰り返す。すなわち、S3506で抽出した記述部分に含まれる全ての$uiの文字列について、S3509~S3512の処理を行い、入力項目であるか出力項目であるかをクライアント用UI定義情報3615に記録する。 After completing the process of S3512, the process proceeds to S3507, where the character string "$ui" is further searched for in the continuation of the description portion extracted in S3506, and the processes of S3507 to S3512 are repeated until it is determined in S3508 that "$ui" is not present. In other words, the processes of S3509 to S3512 are performed for all $ui character strings contained in the description portion extracted in S3506, and whether they are input items or output items is recorded in the client UI definition information 3615.

図35(b)に、実行環境400におけるアプリ実行処理の変形例のフローチャートを示す。この処理は、実行環境400の実行エンジンが実行する処理であり、アプリユーザー用端末200または201から、デプロイ済み(構築済み、生成済み)のアプリケーションに対するアクセスがあった場合に実行する処理である。 Figure 35 (b) shows a flowchart of a modified example of the application execution process in the execution environment 400. This process is executed by the execution engine of the execution environment 400, and is executed when an application that has been deployed (constructed, generated) is accessed from the application user terminal 200 or 201.

図33(c)に、アプリユーザー用端末200または201おけるアプリ実行処理の変形例のフローチャートを示す。この処理は、アプリユーザー用端末200または201のCPU101が実行する処理であり、アプリユーザー用端末200または201のブラウザソフトで、実行環境400にデプロイ済み(構築済み、生成済み)のアプリケーションに対してアクセスした場合に実行する処理である。また、図35(b)の実行環境400におけるアプリ実行処理と、図35(c)のアプリユーザー用端末200または201におけるアプリ実行処理とは、連動して行われる処理である。以下、アプリユーザー用端末200または201による処理について、代表してアプリユーザー用端末200が実行するものとして説明する(アプリユーザー用端末201に関する説明は同様であるため省略する)。 Fig. 33(c) shows a flowchart of a modified example of application execution processing in application user terminal 200 or 201. This processing is executed by CPU 101 of application user terminal 200 or 201 when an application that has been deployed (constructed, generated) in execution environment 400 is accessed using the browser software of application user terminal 200 or 201. The application execution processing in execution environment 400 in Fig. 35(b) and the application execution processing in application user terminal 200 or 201 in Fig. 35(c) are performed in conjunction with each other. Below, the processing by application user terminal 200 or 201 will be described assuming that it is executed by application user terminal 200 as a representative (the description of application user terminal 201 is similar and will be omitted).

図35(b)のS3521では、実行環境400は、アプリユーザー用端末200から送信されたUI定義情報の取得要求を受信したか否かを判定する。ここで受信するUI定義情報の取得要求は、図35(c)のS3543でアプリユーザー用端末200から送信されるものである。UI定義情報の取得要求を受信した場合はS3522に進み、そうでない場合はS3521で待機する。 In S3521 of FIG. 35(b), the execution environment 400 determines whether or not a request to obtain UI definition information has been received from the application user terminal 200. The request to obtain UI definition information received here is the request sent from the application user terminal 200 in S3543 of FIG. 35(c). If a request to obtain UI definition information has been received, the process proceeds to S3522; otherwise, the process waits in S3521.

S3522では、実行環境400は、UI定義情報3411をアプリユーザー用端末200に送信することなく、クライアント用UI定義情報3615を実行環境400に送信する。これによって、図36に図示した通り、実行環境400に記録されたクライアント用UI定義情報3625がアプリユーザー用端末200にダウンロードされ、クライアント用UI定義情報3635として記録される。クライアント用UI定義情報3615とクライアント用UI定義情報3635とは同じ情報である。 In S3522, the execution environment 400 sends the client UI definition information 3615 to the execution environment 400 without sending the UI definition information 3411 to the application user terminal 200. As a result, as shown in FIG. 36, the client UI definition information 3625 recorded in the execution environment 400 is downloaded to the application user terminal 200 and recorded as client UI definition information 3635. The client UI definition information 3615 and the client UI definition information 3635 are the same information.

S3523~S3530の処理は、前述した図33(b)のS3313~S3320とそれぞれ同様の処理であるため説明を省略する。 The processing in steps S3523 to S3530 is similar to the processing in steps S3313 to S3320 in FIG. 33(b) described above, and therefore will not be described here.

図35(c)のS3541~S3543は、前述した図33(c)のS3331~S3333とそれぞれ同様の処理であるため説明を省略する。ただし、S3543では、クライアント用UI定義情報の取得要求を送信する。 Steps S3541 to S3543 in FIG. 35(c) are similar to steps S3331 to S3333 in FIG. 33(c) described above, and therefore will not be described here. However, in step S3543, a request to obtain client UI definition information is sent.

S3544は、アプリユーザー用端末200は、実行環境400からクライアント用UI定義情報を受信したか否かを判定する。ここで受信されるクライアント用UI定義情報は前述した図35(b)のS3522で実行環境400から送信されるものである。クライアント用UI定義情報を受信した場合は、クライアント用UI定義情報をメモリ102に記録してS3545に進み、そうでない場合にはS3544でクライアント用UI定義情報の受信を待つ。クライアント用UI定義情報はメモリ102(ワークメモリ)に一時的な情報として記録され、アプリを終了したことに応じて(アプリのURLへの接続終了に応じて)、自動的に消去するものとする。また、アプリユーザー用端末200は、メモリ102に記録したクライアント用UI定義情報3635に基づいてアプリの画面をディスプレイ105に表示する。 In S3544, the application user terminal 200 determines whether or not it has received client UI definition information from the execution environment 400. The client UI definition information received here is the information sent from the execution environment 400 in S3522 in FIG. 35(b) described above. If the client UI definition information has been received, the client UI definition information is recorded in the memory 102 and the process proceeds to S3545. If not, the process waits for reception of the client UI definition information in S3544. The client UI definition information is recorded in the memory 102 (work memory) as temporary information, and is automatically deleted when the application is terminated (when the connection to the URL of the application is terminated). In addition, the application user terminal 200 displays the application screen on the display 105 based on the client UI definition information 3635 recorded in the memory 102.

S3545では、アプリユーザー用端末200は、前述した図33(c)のS3335と同様、アクションのトリガーが発生したか否かを判定する。アクションのトリガーがあった場合にはS3546へ進み、そうでない場合にはS3553へ進む。 In S3545, the application user terminal 200 determines whether or not an action trigger has occurred, similar to S3335 in FIG. 33(c) described above. If an action trigger has occurred, the process proceeds to S3546; if not, the process proceeds to S3553.

S3546~S3553の処理は、前述した図33(c)のS3343~S3350とそれぞれ同様の処理であるため説明を省略する。前述した図33(c)のS3336~S3342に相当する処理は、変形例においてアプリユーザー用端末200では行わない。 The processes of S3546 to S3553 are similar to the processes of S3343 to S3350 in FIG. 33(c) described above, respectively, and therefore will not be described. In this modified example, the processes corresponding to S3336 to S3342 in FIG. 33(c) described above are not performed by the application user terminal 200.

次に、図37(b’)および(c)の説明をする。 Next, we will explain Figures 37(b') and (c).

以下では、図33(b)(c)との差分について説明し、特に触れない限りは図33の説明と同様であるものとする。 Below, we will explain the differences with Figures 33(b) and (c), and unless otherwise noted, the explanation for Figure 33 will be the same.

図37(b’)の処理は、図33のS3316で実行される処理をより具体的に記載したものである。 The process in FIG. 37(b') is a more specific description of the process executed in S3316 in FIG. 33.

S3701のアクション実行の説明の前に図38、図42(a)にアクションの設定の一例を示しておく。ボタン3801(図38)のアクション設定を「アップロード」(3802)に設定しておくことで、ボタン3801がファイルをアップロードするためのボタンとなる。 Before explaining the action execution of S3701, an example of action settings is shown in Fig. 38 and Fig. 42(a). By setting the action setting of button 3801 (Fig. 38) to "upload" (3802), button 3801 becomes a button for uploading a file.

すなわち、ボタン3801は、データのアップロードに係るコンポーネントはボタンであることの一例を示す図である
また、リンク4201(図42)に対してアクション542の選択を受け付けると、当該リンク4201にアクションの設定ができる。
That is, the button 3801 is a diagram showing an example in which the component relating to data upload is a button. Furthermore, when the selection of the action 542 for the link 4201 (FIG. 42) is accepted, an action can be set for the link 4201.

すなわち、リンク4201は、データのダウンロードに係るコンポーネントはリンクであることの一例を示す図である
アクション542の選択を受け付けた際の処理の流れは、図7、図8に示す通りであるため、ここでの説明は省略する。
That is, link 4201 is a diagram showing an example in which a component related to data download is a link. The processing flow when the selection of action 542 is accepted is as shown in Figures 7 and 8, so a description thereof will be omitted here.

S3701では、実行環境400は、要求されたアクションの実行を開始する。 In S3701, the execution environment 400 begins executing the requested action.

S3702では、実行環境400は、アクションボードに入力されたアクションコードを基にアクションを実行する。 In S3702, the execution environment 400 executes an action based on the action code entered into the action board.

アクションコードに「$fn.getUploadFiles」が含まれていた場合、S3703に進み、「$fn.download」が含まれていた場合、S3705へ進む。それ以外の場合は、通常コードを実行するためS3704へ処理を進める。 If the action code contains "$fn.getUploadFiles", proceed to S3703, and if it contains "$fn.download", proceed to S3705. Otherwise, proceed to S3704 to execute normal code.

上記の「$fn」は、当開発ツールが予め用意した関数(予約語)である。 The "$fn" above is a function (reserved word) that is pre-prepared by this development tool.

すなわち、図39(a)~(c)のアクションボードは、データのアップロードに係る、関数または予約語を用いた指示を受け付けるように制御する処理の一例を示す図である
すなわち、図42(b)~(e)のアクションボードは、データのダウンロードに係る、関数または予約語を用いた指示を受け付けるように制御する処理の一例を示す図である
なお、本実施形態においては、「$fn」としたが、この記述形式に限定するものではなく、「$function」や「<fn>」など他の記述形式であってもよい。
That is, the action boards of Figures 39 (a) to (c) are diagrams showing an example of a process for controlling to accept instructions using functions or reserved words related to data uploading. That is, the action boards of Figures 42 (b) to (e) are diagrams showing an example of a process for controlling to accept instructions using functions or reserved words related to data downloading. Note that, although "$fn" is used in this embodiment, this is not limited to the description format, and other description formats such as "$function" or "<fn>" may also be used.

これにより、アプリ開発者は、アップロードやダウンロードに係る複雑な処理を記述する手間を省くことができる。つまり、アプリケーションの要件に応じた細かな処理を実現しつつ、開発にかける工数を削減することができるようになる。 This allows app developers to save the trouble of having to write complex processes related to uploading and downloading. In other words, it allows them to reduce the amount of development work while still implementing detailed processes that meet the requirements of the application.

S3703では、実行環境400は、(アプリユーザー用端末200からアップロードされたファイルが一時的に格納されている)一時格納URLからファイルを取得する。一時格納URLについては、後述するS3713~S3178にて説明する。 In S3703, the execution environment 400 retrieves the file from the temporary storage URL (where the file uploaded from the application user terminal 200 is temporarily stored). The temporary storage URL is described in S3713 to S3178 below.

アクションボードに入力されたアップロードに係るアクションコードの例を図39(a)に示す。 An example of an action code related to uploading entered into the action board is shown in Figure 39 (a).

2行目は、アップロードされたファイルを一時格納URLから取得し、変数に代入する処理である。 The second line retrieves the uploaded file from the temporary storage URL and assigns it to a variable.

5行目は、2行目で取得したファイルをクラウドに保存する処理である。 The fifth line is the process of saving the file obtained in the second line to the cloud.

すなわち、S3703は、データのアップロードに係る、関数または予約語を用いた指示を受け付け、実行するように制御する処理の一例を示すステップである。 In other words, S3703 is a step that shows an example of a process for accepting and controlling the execution of an instruction using a function or reserved word related to uploading data.

図39(b)の3行目は、取得したアップロードファイルを文字列に変換する処理の例である。 The third line in Figure 39 (b) is an example of a process for converting the obtained uploaded file into a string.

図39(c)の4行目は、取得したアップロードファイルのファイル名を設定する処理の例である。 The fourth line in Figure 39 (c) is an example of a process for setting the file name of the acquired uploaded file.

図39(c)の6行目は、ファイル内容を確認し、機密文書か否かを判定するビジネスロジックの例である。 Line 6 in Figure 39(c) is an example of business logic that checks the file contents and determines whether or not it is a confidential document.

図39(c)の8行目は、機密文書である場合に、ファイルを機密文書フォルダに保存する処理の例である。 Line 8 of Figure 39(c) is an example of a process for saving a file in a confidential document folder if the file is a confidential document.

図39(c)の11行目は、機密文書でない場合に、ファイルを一般フォルダに保存する処理の例である。 Line 11 of Figure 39(c) is an example of a process for saving a file in a general folder if the file is not a confidential document.

なお、本実施形態においては、上記の様な処理を例として挙げた、この例に限定するものではなく、アプリケーション画面の制御に係る処理、ビジネスロジック、データベース処理、データをアップロードさせる処理、データをダウンロードさせる処理、アップロードされたデータを用いた処理、アップロードされたデータに応じた処理、アップロードされたデータを変数に代入する処理、アップロードされたデータを加工する処理、アップロードされたデータを所定の場所に保存する処理、アップロードされたデータをオンライン上に保存する処理、アップロードされたデータをデータベースに保存する処理、アップロードされたデータをダウンロードさせる処理、アップロードされたデータを転送する処理であってもよい。 In this embodiment, the above-mentioned processes are given as examples, but are not limited to these examples, and may be processes related to control of the application screen, business logic, database processing, processes for uploading data, processes for downloading data, processes using uploaded data, processes according to uploaded data, processes for substituting uploaded data into variables, processes for processing uploaded data, processes for saving uploaded data in a specified location, processes for saving uploaded data online, processes for saving uploaded data in a database, processes for downloading uploaded data, and processes for transferring uploaded data.

このように、アクションボードにはJavaScriptを用いたソースコードを記述することができ、JavaScriptで記述できる処理であれば、ユーザーは自由にアクションを設定することが可能である。 In this way, source code using JavaScript can be written on the action board, and users can freely set actions as long as the process can be written in JavaScript.

すなわち、図39のアクションボードは、ソースコードによって記述された指示を受け付けるように制御する一例を示す図である
なお、本実施形態においては、JavaScriptを用いたソースコードとしたが、この方法に限定するものではなく、Java(登録商標)やPython(登録商標)等、他の言語を用いたソースコードであってもよい。
That is, the action board in FIG. 39 is a diagram showing an example of control to accept instructions written in source code. Note that in this embodiment, the source code uses JavaScript, but this is not limited to this method, and source code may use other languages such as Java (registered trademark) or Python (registered trademark).

そのため、アプリ開発者はダウンロード処理を、例えば任意の場所(ストレージやクラウド、データベース等)に保存されたファイルをダウンロードする等、より自由な方法で実現できるようになる。 This allows app developers more flexibility in how they perform download processes, for example by downloading files stored in any location (storage, cloud, database, etc.).

また、JavaScriptを習得済であれば、開発ツール独自の言語を覚えることなく、データのダウンロードに係る所望する処理を実行するアプリケーションを容易に構築することができる。
さらに、ダウンロードに係る複雑な処理であっても、アクションボードにJavaScriptで記述したソースコードを入力することで実現できるため、より簡易な方法で実行することができるようになる。
Furthermore, if one has already mastered JavaScript, one can easily build an application that executes the desired process relating to downloading data, without having to learn a language unique to the development tool.
Furthermore, even complex download-related processes can be realized by inputting source code written in JavaScript into the action board, making it possible to execute the processes in a simpler manner.

アプリケーション開発支援ツールで構築するアプリケーションにおいて、文書ファイル/表計算ファイル/画像ファイルなどのバイナリファイルをアップロードし、そのアプリケーションにおいて様々な処理を行うためには、アプリケーションの開発者は複雑な処理を記述する必要があったが、以上により、複雑な処理を記述する必要がなくなるため、バイナリファイル等のデータのアップロードに係る所望する処理を実行するアプリケーションを容易に構築することができるようになる。 In applications built with application development support tools, in order to upload binary files such as document files, spreadsheet files, and image files and perform various processes in the application, application developers were previously required to write complex processes. However, with the above, there is no longer a need to write complex processes, making it easier to build applications that perform the desired processes related to uploading data such as binary files.

S3704では、実行環境400は、アクションボードに入力されたコードを実行する。具体的な内容は、S3316の処理で既に説明しているのでここでは省略するが、アップロードまたはダウンロードに係る処理のうち、ビジネスロジックについてのみ補足説明しておく。 In S3704, the execution environment 400 executes the code entered in the action board. The specific contents have already been explained in the processing of S3316, so they will not be explained here, but we will provide additional explanation only on the business logic of the processing related to uploading or downloading.

図39(b)の3行目は、取得したアップロードファイルを文字列に変換する処理の例であったが、この処理には、「$fn」が含まれていないため、S3704において実行される。 The third line in Figure 39(b) is an example of a process for converting the obtained uploaded file into a character string, but since this process does not contain "$fn", it is executed in S3704.

その実行結果が図41の4100であり、テキストエリア4101に文字列に変換されたアップロードファイルの内容が表示されている。 The execution result is shown in FIG. 41, 4100, where the contents of the uploaded file converted into a string are displayed in text area 4101.

なお、本実施形態においては、アップロードファイルを文字列に置換するとしたが、この例に限定するものではなく、アップロードファイル内のキーワードに応じてデータベースを検索する、アップロードファイル内のデータに基づきグラフを描画して画面に表示する等であってもよい。 In this embodiment, the uploaded file is replaced with a character string, but this is not limited to the example. It is also possible to search a database based on keywords in the uploaded file, or to draw a graph based on the data in the uploaded file and display it on the screen.

S3705では、実行環境400は、引数に渡されたファイルをダウンロード用の一時格納用領域に出力する。アクションボードに入力されたダウンロードに係るアクションコードの例を図42(b)に示す。 In S3705, the execution environment 400 outputs the file passed as the argument to a temporary storage area for downloading. An example of an action code related to downloading input to the action board is shown in FIG. 42(b).

1行目4202は実行環境400のストレージ420から指定パスに配置されたファイルを取得する処理であり、引数には取得対象のファイルパスが記述される。ここでは、「sample.txt」が取得対象のファイル名である。ファイルパスには、アプリユーザー用端末200にダウンロードさせたいファイル、例えば、文書ファイル、テキストファイル、音声ファイル、画像ファイル、動画ファイル、圧縮ファイル、プログラムファイル等の保管場所を入力する。 Line 1 4202 is a process for retrieving a file located at a specified path from storage 420 of execution environment 400, and the argument describes the path of the file to be retrieved. In this case, "sample.txt" is the file name to be retrieved. In the file path, the storage location of the file to be downloaded to the application user terminal 200, for example, a document file, text file, audio file, image file, video file, compressed file, program file, etc., is input.

2行目4203のように、当該アクションの実行が設定されたコンポーネントのラベルの名称を変更することもできる。例えば、ラベルの名称が「ダウンロード」と設定されていた場合、アクションが実行されると、名称を「sample.txt」に変更することができる。2行目4203の記述は任意であり、別の命令を記述してもよいし省略しても良い。 As in line 2 4203, it is also possible to change the name of the label of the component for which the action is set to be executed. For example, if the label name is set to "download", the name can be changed to "sample.txt" when the action is executed. The description in line 2 4203 is optional, and a different command may be written or it may be omitted.

3行目4204では、引数にファイルを指定してダウンロード関数を呼び出している。この呼び出しが実行されると、アプリユーザー用端末200にファイルがダウンロードされる。 In the third line 4204, the download function is called by specifying a file as an argument. When this call is executed, the file is downloaded to the application user terminal 200.

すなわち、S3705は、データのダウンロードに係る、関数または予約語を用いた指示を受け付け、実行するように制御する処理の一例を示すステップである。 In other words, S3705 is a step showing an example of a process for accepting and controlling the execution of an instruction using a function or reserved word related to downloading data.

なお、図42(b)では実行環境400のストレージからファイルをダウンロードする例を紹介したが、図42(c)~(e)に示すように、これに限るものではない。 Note that while Figure 42(b) shows an example of downloading a file from the storage of the execution environment 400, this is not limited to this, as shown in Figures 42(c) to (e).

図42(c)は、実行環境400ではないクラウド上のストレージからファイルをダウンロードする例4205である。 Figure 42 (c) is an example 4205 of downloading a file from storage on a cloud other than the execution environment 400.

図42(d)は、データベースからデータをダウンロードする例4206である。例えば、データベースに保存されているユーザー一覧データを取得し、それをCSVデータに変換する。そして当該CSVデータのダウンロードを実行する。 Figure 42 (d) is an example 4206 of downloading data from a database. For example, user list data stored in a database is obtained and converted to CSV data. Then, the CSV data is downloaded.

図42(e)は、アップロードされたファイルをダウンロードする例4207である。後述するS3711の処理によりアップロードされたファイル(例えば、画像ファイル)を取得し、その画像を縮小し、当該縮小した画像のファイルをアプリユーザー用端末200にダウンロードを実行する。 Figure 42 (e) is an example 4207 of downloading an uploaded file. The file (e.g., an image file) uploaded by the process of S3711 described below is obtained, the image is reduced, and the reduced image file is downloaded to the application user terminal 200.

ここでは、ファイルとしてダウンロードさせるものとしたが、ファイルではなくストリーミングデータとしてダウンロードさせたり、通信プロトコル(例:HTTP、FTP、SMTP等)上でデータとして転送させたりする等であっても良い。 Here, it is assumed that the data is downloaded as a file, but it may also be downloaded as streaming data rather than as a file, or transferred as data over a communications protocol (e.g. HTTP, FTP, SMTP, etc.).

なお、本実施形態においては、上記の様な処理を例として挙げた、この例に限定するものではなく、アプリケーション画面の制御に係る処理、ビジネスロジック、データベース処理、データをアップロードさせる処理、データをダウンロードさせる処理、ファイルをダウンロードさせる処理、所定の場所に保存されたデータをダウンロードさせる処理、オンライン上に保存されたデータをダウンロードさせる処理、データベースに保存されたデータをダウンロードさせる処理、アップロードされたデータをダウンロードさせる処理、アプリケーション画面の制御に係る処理、ビジネスロジック、もしくは、データベース処理の処理結果をダウンロードさせる処理
であってもよい。
In this embodiment, the above-mentioned processes are given as examples, but are not limited to these examples, and the process may be related to control of an application screen, business logic, database processing, processing for uploading data, processing for downloading data, processing for downloading a file, processing for downloading data stored in a specified location, processing for downloading data stored online, processing for downloading data stored in a database, processing for downloading uploaded data, processing related to control of an application screen, business logic, or processing for downloading the results of database processing.

このように、アクションボードにはJavaScriptを用いたソースコードを記述することができ、JavaScriptで記述できる処理であれば、ユーザーは自由にアクションを設定することが可能である。 In this way, source code using JavaScript can be written on the action board, and users can freely set actions as long as the process can be written in JavaScript.

すなわち、図42(b)~(e)のアクションボードは、ソースコードによって記述された指示を受け付けるように制御する一例を示す図である
なお、本実施形態においては、JavaScriptを用いたソースコードとしたが、この方法に限定するものではなく、Java(登録商標)やPython(登録商標)等、他の言語を用いたソースコードであってもよい。
That is, the action boards in Figures 42 (b) to (e) are diagrams showing an example of control to accept instructions written in source code. Note that in this embodiment, the source code uses JavaScript, but this is not limited to this method, and source code may use other languages such as Java (registered trademark) or Python (registered trademark).

そのため、アプリ開発者はダウンロード処理を、例えば任意の場所(ストレージやクラウド、データベース等)に保存されたファイルをダウンロードする等、より自由な方法で実現できるようになる。 This allows app developers more flexibility in how they perform download processes, for example by downloading files stored in any location (storage, cloud, database, etc.).

また、JavaScriptを習得済であれば、開発ツール独自の言語を覚えることなく、データのダウンロードに係る所望する処理を実行するアプリケーションを容易に構築することができる。 In addition, if you have already learned JavaScript, you can easily build an application that performs the desired processing related to downloading data without having to learn the development tool's own language.

さらに、ダウンロードに係る複雑な処理であっても、アクションボードにJavaScriptで記述したソースコードを入力することで実現できるため、より簡易な方法で実行することができるようになる。 In addition, even complex download-related processes can be executed in a simpler way by simply entering source code written in JavaScript into the action board.

S3706では、実行環境400は、ダウンロード用の一時格納用領域のURLを生成する。具体的には、実行環境400のストレージ420内(実行エンジン412とは別の筐体のストレージとする)に一時格納用領域を作成し、その格納場所URLを生成する。 In S3706, the execution environment 400 generates a URL for a temporary storage area for downloading. Specifically, a temporary storage area is created in the storage 420 of the execution environment 400 (which is assumed to be a storage in a separate housing from the execution engine 412), and a URL for the storage location is generated.

このように、ストレージ420内にダウンロード用の一時格納領域を作成しそこにファイルを格納しておくことで、ダウンロード時に実行環境400のメモリ414を使用することなく、ダウンロード処理を行うことができるため、実行環境400のメモリ414を節約することができる。 In this way, by creating a temporary storage area for downloading within storage 420 and storing files there, the download process can be performed without using memory 414 of execution environment 400 when downloading, thereby conserving memory 414 of execution environment 400.

なお、ここではダウンロード用の一時格納領域をストレージ420に作成する例を示したが、実行環境400のメモリ414に保存しておいてそこからファイルをダウンロードするようにしてもよい。 Note that, although an example has been shown here in which a temporary storage area for downloading is created in storage 420, it is also possible to store the area in memory 414 of execution environment 400 and download the file from there.

S3707では、実行環境400は、アクションボードに入力されたコードの実行を終了する。 In S3707, the execution environment 400 ends the execution of the code entered into the action board.

以上で、図33のS3316で実行される処理をより具体化した図37(b’)の処理の説明を終了する。 This concludes the explanation of the process in Figure 37(b'), which is a more specific example of the process executed in S3316 in Figure 33.

すなわち、ステップS3316は、コンポーネントがデータのダウンロードに係るコンポーネントの場合であって、構築されたアプリケーションのユーザーからコンポーネントに対する操作を受け付けた場合、受け付けた処理内容に基づいて処理を実行するように制御する処理の一例を示すステップである
すなわち、ステップS3316は、ユーザーから操作を受け付けたコンポーネントに対応付けて記憶されている処理内容に基づいて処理を実行するように制御する処理の一例を示すステップである。
That is, step S3316 is a step that shows an example of a process in which, when the component is a component related to data downloading and an operation on the component is received from a user of the constructed application, the processing is controlled to be executed based on the received processing content.That is, step S3316 is a step that shows an example of a process in which, when the component is a component related to data downloading and an operation on the component is received from a user of the constructed application, the processing is controlled to be executed based on the received processing content.

すなわち、図33のステップS3302は、受け付けた処理内容をコンポーネントに対応付けて記憶するように制御する処理の一例を示すステップである。 That is, step S3302 in FIG. 33 is a step showing an example of a process for controlling the received processing content to be stored in association with a component.

すなわち、図37(b’)の各ステップは、アプリケーション画面の制御に係る処理、ビジネスロジック、データベース処理、データをアップロードさせる処理、データをダウンロードさせる処理、ファイルをダウンロードさせる処理、所定の場所に保存されたデータをダウンロードさせる処理、オンライン上に保存されたデータをダウンロードさせる処理、データベースに保存されたデータをダウンロードさせる処理、アップロードされたデータをダウンロードさせる処理、および、アプリケーション画面の制御に係る処理、ビジネスロジック、もしくは、データベース処理の処理結果をダウンロードさせる処理のうち、少なくとも1つを含む処理の一例を示すステップである。 In other words, each step in FIG. 37(b') is a step showing an example of a process that includes at least one of the following: a process related to control of an application screen, business logic, database processing, a process for uploading data, a process for downloading data, a process for downloading a file, a process for downloading data stored in a specified location, a process for downloading data stored online, a process for downloading data stored in a database, a process for downloading uploaded data, and a process related to control of an application screen, business logic, or a process for downloading the results of database processing.

すなわち、図37(b’)の各ステップは、アプリケーション画面の制御に係る処理、ビジネスロジック、データベース処理、データをアップロードさせる処理、データをダウンロードさせる処理、ファイルをダウンロードさせる処理、所定の場所に保存されたデータをダウンロードさせる処理、オンライン上に保存されたデータをダウンロードさせる処理、データベースに保存されたデータをダウンロードさせる処理、アップロードされたデータをダウンロードさせる処理、および、アプリケーション画面の制御に係る処理、ビジネスロジック、もしくは、データベース処理の処理結果をダウンロードさせる処理のうち、2以上の処理を続けて実行するように制御する処理の一例を示すステップである。 In other words, each step in FIG. 37(b') is a step showing an example of a process for controlling the successive execution of two or more processes among a process related to the control of an application screen, business logic, database processing, a process for uploading data, a process for downloading data, a process for downloading a file, a process for downloading data stored in a specified location, a process for downloading data stored online, a process for downloading data stored in a database, a process for downloading uploaded data, and a process related to the control of an application screen, business logic, or a process for downloading the results of database processing.

次に、図37(c)の説明をする。 Next, we will explain Figure 37(c).

S3711では、アプリユーザー用端末200は、実行するアクションがアップロードアクションか否かを判定する。アップロードアクションである場合はステップS3712に進み、アップロードアクションでない場合はステップS3345に進む。 In S3711, the application user terminal 200 determines whether the action to be executed is an upload action. If it is an upload action, the process proceeds to step S3712, and if it is not an upload action, the process proceeds to step S3345.

S3712では、アプリユーザー用端末200は、ファイル選択ウィンドウを表示して、ユーザーからアップロードするファイルの選択を受け付ける。 In S3712, the app user terminal 200 displays a file selection window and accepts the user's selection of a file to upload.

具体的には、図40のように、アップロードアクションが設定されたボタン4001の押下を受け付けたとき、アプリユーザー用端末200は、ファイル選択ウィンドウ4002を表示して、ユーザーからアップロードするファイル4003の選択を受け付ける(4004)
S3713では、アプリユーザー用端末200は、実行環境400に対してファイルの一時格納場所URLを要求する。
Specifically, as shown in FIG. 40, when a button 4001 to which an upload action is set is pressed, the application user terminal 200 displays a file selection window 4002 and receives a selection of a file 4003 to be uploaded from the user (4004).
In S3713, the application user terminal 200 requests the execution environment 400 for the URL of the temporary storage location of the file.

S3714では、実行環境400は、ファイルの一時格納場所URL要求を受け付ける。 In S3714, the execution environment 400 accepts a request for the URL of the temporary storage location of the file.

S3715では、実行環境400は、ファイルの一時格納場所URLを作成する。具体的には、実行環境400のストレージ420内(実行エンジン412とは別の筐体のストレージとする)に一時格納用領域を作成し、その格納場所URLを生成する。 In S3715, the execution environment 400 creates a temporary storage location URL for the file. Specifically, a temporary storage area is created in the storage 420 of the execution environment 400 (which is assumed to be a storage in a separate housing from the execution engine 412), and a storage location URL is generated.

S3716では、実行環境400は、ファイルの一時格納場所URLを返却する。 In S3716, the execution environment 400 returns the URL of the temporary storage location of the file.

S3717では、アプリユーザー用端末200は、ファイルの一時格納場所URLを取得する。 In S3717, the application user terminal 200 obtains the URL of the temporary storage location of the file.

S3718では、アプリユーザー用端末200は、S3712でアプリユーザーが選択したファイルを、ファイル一時格納場所URLへアップロードする。
以上により、本実施形態によれば、データのアップロードに係る所望する処理を実行するアプリケーションを容易に構築することができる。
このように、ストレージ420内にアップロード用の一時格納領域を作成しそこにファイルを格納しておくことで、ダウンロード時に実行環境400のメモリ414を使用することなく、アップロード処理を行うことができるため、実行環境400のメモリ414を節約することができる。
In S3718, the application user terminal 200 uploads the file selected by the application user in S3712 to the file temporary storage location URL.
As described above, according to this embodiment, an application that executes a desired process related to uploading data can be easily constructed.
In this way, by creating a temporary storage area for uploading within storage 420 and storing files there, the upload process can be performed without using memory 414 of execution environment 400 when downloading, thereby conserving memory 414 of execution environment 400.

S3719では、アプリユーザー用端末200は、アクション実行結果にダウンロード用URLが含まれているか否かを判定する。含まれている場合はS3720へ処理を進め、そうでない場合はS3350へ処理を進める。具体的には、S3347でアクション結果を受信した際に、S3706において実行環境400により作成されたダウンロード用URLが含まれているか否かを判定する。 In S3719, the application user terminal 200 determines whether the action execution result includes a download URL. If so, the process proceeds to S3720; if not, the process proceeds to S3350. Specifically, when the action result is received in S3347, the application user terminal 200 determines whether the action execution result includes a download URL created by the execution environment 400 in S3706.

S3720では、アプリユーザー用端末200は、ダウンロード用URLに含まれているファイルのダウンロードを実行する。具体的には、S3705において実行環境400により一時的に出力されたファイルのダウンロードを実行する。 In S3720, the application user terminal 200 downloads the file included in the download URL. Specifically, it downloads the file that was temporarily output by the execution environment 400 in S3705.

すなわち、ステップS3720は、データのダウンロードに係る処理を実行するように制御する処理の一例を示すステップである。 That is, step S3720 is a step showing an example of a process for controlling the execution of a process related to downloading data.

アプリユーザー用端末200に表示される画面の例を図43に示す。例えば、データベース等に保存されている表を取得し、表の中には、文字列4301やアイコン4302等のコンポーネントが含まれている。当該コンポーネントにはダウンロードに関するアクションが設定されており、文字列4301またはアイコン4302が選択されると、ダウンロード処理を実行する。 An example of a screen displayed on the application user terminal 200 is shown in FIG. 43. For example, a table stored in a database or the like is acquired, and the table contains components such as a character string 4301 and an icon 4302. An action related to downloading is set for the component, and when the character string 4301 or the icon 4302 is selected, a download process is executed.

これにより、コンポーネントの表示形式はテキストボックス(文字列)に限らず、アイコンやイメージ画像等多岐にわたるため、コンポーネントに対してアクションを設定する本実施形態であれば、ダウンロード処理も任意のコンポーネントに対して設定することができる。 As a result, the display format of components is not limited to text boxes (character strings) but can be a variety of formats such as icons and image images, so in this embodiment, which sets actions for components, download processing can also be set for any component.

すなわち、図43は、コンポーネントの表示形式は、文字列、画像、アイコンのうち少なくとも1つを含むことの一例を示す図である。 In other words, Figure 43 shows an example in which the display format of a component includes at least one of a string, an image, and an icon.

すなわち、S3720は、コンポーネントがデータのダウンロードに係るコンポーネントの場合であって、構築されたアプリケーションのユーザーからコンポーネントに対する操作を受け付けた場合、受け付けた処理内容に基づいて処理を実行するように制御する処理の一例を示すステップである。 In other words, S3720 is a step showing an example of a process in which, when the component is a component related to downloading data and an operation on the component is received from a user of the constructed application, the component is controlled to execute processing based on the received processing content.

すなわち、S3720は、アクションボード等により受け付けた処理内容をコンポーネント対応付けて記憶するよう制御し、ユーザーから操作を受け付けたコンポーネントに対応付けて記憶されている処理内容に基づいて処理を実行する処理の一例を示すステップである。 In other words, S3720 is a step showing an example of a process in which the process contents received by the action board or the like are stored in association with a component, and a process is executed based on the process contents stored in association with the component that received the operation from the user.

以上により、本実施形態によれば、データのダウンロードに係る所望する処理を実行するアプリケーションを容易に構築することができる。 As described above, according to this embodiment, it is possible to easily build an application that executes the desired processing related to downloading data.

なお、仮にスクラッチ開発によりダウンロード処理を実行しようとした場合、ダウンロードしようとするファイルは既に固定の場所に保存されており、その場所からダウンロードを実行することになる。また、固定の文字列になっていたり、固定のリンク形式が生成され、それを選択することによりダウンロード処理が実行される。また、複雑な処理の場合であっても一からコードを記述する必要があり手間がかかる。 If you were to try to execute a download process by developing from scratch, the file you are trying to download would already be saved in a fixed location, and the download would be executed from that location. Also, a fixed string of characters or a fixed link format would be generated, and the download process would be executed by selecting it. Also, even for complex processes, it would be necessary to write the code from scratch, which is time-consuming.

それに対して、本実施形態によれば、任意のコンポーネントに対してアクションを設定することが可能であり、保存場所を指定することで任意の場所からファイルをダウンロードすることが可能である。また、複雑な処理になる場合であったとしても、コンポーネントに対してアクションを設定すれば実現できるため、一からコードを記述する必要はなく、より簡易な方法で実現できる。 In contrast, according to this embodiment, it is possible to set an action for any component, and it is possible to download a file from any location by specifying the save location. Furthermore, even if the processing is complicated, it can be realized by setting an action for the component, so there is no need to write code from scratch, and it can be realized in a simpler way.

なお、上述の各フローチャートで説明した各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である
The various controls described in each of the above flowcharts may be performed by a single piece of hardware, or the entire device may be controlled by multiple pieces of hardware (e.g., multiple processors or circuits) sharing the processing.
In addition, although the present invention has been described in detail based on the preferred embodiments, the present invention is not limited to these specific embodiments, and various forms within the scope of the gist of the present invention are also included in the present invention. Furthermore, each of the above-mentioned embodiments merely shows one embodiment of the present invention, and each embodiment can be appropriately combined.

(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Other Embodiments
The present invention can also be realized by executing the following process. That is, software (programs) that realize the functions of the above-described embodiments are supplied to a system or device via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or device reads and executes the program code. In this case, the program and the storage medium on which the program is stored constitute the present invention.

プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。 Recording media for supplying the program may include, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a DVD-ROM, a magnetic tape, a non-volatile memory card, a ROM, an EEPROM, a silicon disk, etc.

また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Furthermore, it goes without saying that not only are the functions of the above-mentioned embodiments realized by the computer executing a program it has read, but also that the above-mentioned functions of the embodiments are realized by an operating system (OS) or the like running on the computer carrying out some or all of the actual processing based on the instructions of the program.

さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 Furthermore, it goes without saying that this also includes cases where a program read from a recording medium is written into a memory provided on a function expansion board inserted into a computer or a function expansion unit connected to a computer, and then a CPU or the like provided on the function expansion board or function expansion unit performs some or all of the actual processing based on the instructions of the program code, thereby realizing the functions of the above-mentioned embodiments.

また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。 The present invention may be applied to a system made up of multiple devices, or to a device made up of a single device. Needless to say, the present invention can also be applied to cases where the effects of the present invention are achieved by supplying a program to a system or device. In this case, the effects of the present invention can be enjoyed by reading a recording medium that stores a program for achieving the present invention into the system or device.

上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、OS(オペレーティングシステム)に供給されるスクリプトデータ等の形態から成ってもよい。 The program may be in the form of object code, program code executed by an interpreter, script data supplied to an OS (operating system), etc.

さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
Furthermore, by downloading and reading a program for achieving the present invention from a server, database, etc. on a network using a communication program, the system or device can enjoy the effects of the present invention. Note that the present invention also includes configurations that combine the above-mentioned embodiments and their modified examples.

<複数の観点>
上述の実施形態で説明した通り、本実施形態の情報処理システムは以下のような構成を含む。また、本実施形態は、以下の構成の各手段が実行するステップを有する情報処理システムの制御方法を示している。また、本実施形態は、以下の構成の各手段として少なくとも1つのコンピュータを機能させるためのプログラムによっても実現可能である。
Multiple Perspectives
As described in the above embodiment, the information processing system of this embodiment includes the following configuration. This embodiment also shows a control method for the information processing system having steps executed by each means of the following configuration. This embodiment can also be realized by a program for causing at least one computer to function as each means of the following configuration.

[構成1―1]
ユーザーがプログラミング言語で記述する入力とは異なる入力操作であって、創作関数を作成するための設定画面に対する前記ユーザーからの入力操作を受け付ける受付手段と、
前記受付手段で受け付けた前記入力操作に基づいて前記創作関数に関する情報を設定する設定手段と、
プログラミング言語で記述された、前記創作関数の識別情報が含まれる文字列を取得した場合に、前記設定手段で設定された情報に基づいて、前記創作関数の機能を含む前記文字列で示される機能を実行可能とする制御を行う制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 1-1]
a receiving means for receiving an input operation from a user on a setting screen for creating a creation function, the input operation being different from an input written by the user in a programming language;
a setting means for setting information related to the creation function based on the input operation received by the receiving means;
a control means for performing control when a character string including identification information of the created function described in a programming language is acquired, to enable a function indicated by the character string including a function of the created function based on information set by the setting means;
An information processing system comprising:

[構成1―2]
ユーザーがプログラミング言語で記述する入力とは異なる入力操作であって、創作関数を作成するための設定画面に対する前記ユーザーからの入力操作に基づいて、前記創作関数に関する情報を設定する設定手段と、
プログラミング言語の記述領域に、前記創作関数の識別情報に一部一致する文字列が入力された場合に、前記創作関数の識別情報の選択肢を表示するように制御する表示制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 1-2]
a setting means for setting information about the creation function based on an input operation from the user on a setting screen for creating the creation function, the input operation being different from an input written by the user in a programming language;
a display control means for controlling the display of options for the identification information of the creative function when a character string that partially matches the identification information of the creative function is input into a description area of a programming language;
An information processing system comprising:

[構成1―3]
ユーザーがプログラミング言語で記述する入力とは異なる入力操作であって、創作関数を作成するための設定画面に対する前記ユーザーからの入力操作に基づいて、前記創作関数に関する情報を設定する設定手段と、
プログラミング言語の記述領域とともに、前記設定手段で設定された前記創作関数の識別情報を表示するように制御する表示制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 1-3]
a setting means for setting information about the creation function based on an input operation from the user on a setting screen for creating the creation function, the input operation being different from an input written by the user in a programming language;
a display control means for controlling to display identification information of the creation function set by the setting means together with a description area of a programming language;
An information processing system comprising:

[構成2]
アプリケーションの開発画面に配置された第1の種別のコンポーネントのうち指示領域(タブ)に対する操作があったことに応じて、前記第1の種別のコンポ―ントの領域内の少なくとも一部の領域の表示を、操作された指示領域に対応する要素画面に切り替えるように制御する表示制御手段と、
前記開発画面に配置された前記第1の種別のコンポーネントの領域に対して他のコンポーネントを配置する操作があった場合に、前記第1の種別のコンポーネントの複数の要素画面のうち、現在表示されている要素画面に対して前記他のコンポーネントを配置するように制御する制御手段と
を有することを特徴とする情報処理システム。
[Configuration 2]
a display control means for controlling, in response to an operation on a designated area (tab) of a first type component arranged on a development screen of an application, to switch a display of at least a part of an area of the first type component to an element screen corresponding to the operated designated area;
and a control means for controlling, when an operation is performed to place another component in an area of the first type component placed on the development screen, to place the other component on a currently displayed element screen out of a plurality of element screens of the first type component.

[構成3]
アプリケーションの開発画面に第1の種別の第1のコンポーネントを配置する配置手段と、
前記配置手段で配置された前記第1のコンポ―ネントの設定値の入力領域に、デフォルトの設定値を、プログラミング言語で記述する際の構造を識別可能な形態で表示する
ように制御する表示制御手段と
を有することを特徴とする情報処理システム。
[Configuration 3]
a placement means for placing a first component of a first type on a development screen of the application;
and a display control means for controlling the display of default setting values in an input area for the setting values of the first component arranged by the arrangement means in a form that allows the structure to be identified when written in a programming language.

[構成4]
第1の種別の環境(開発環境)と第2の種別の環境(実行環境)とを含む情報処理システムであって、
前記第2の種別の環境であって、前記第1の種別の環境に接続しているユーザーがアクセス可能な環境のうち、特定の環境の特定の領域から、前記特定の環境におけるアクセス先情報を取得する取得手段と、
前記取得手段で取得したアクセス先情報が示すアクセス先に、所定の処理(例えばユーザー情報の送信処理)の実行要求を送信するように制御する送信制御手段と
を有することを特徴とする情報処理システム。
[Configuration 4]
An information processing system including a first type of environment (development environment) and a second type of environment (execution environment),
an acquisition means for acquiring access destination information in the second type environment from a specific area of a specific environment among environments accessible to a user connected to the first type environment;
a transmission control means for controlling transmission of a request to execute a predetermined process (e.g., a process of transmitting user information) to an access destination indicated by the access destination information acquired by the acquisition means.

[構成5]
第1の種別の環境(開発環境)と第2の種別の環境(実行環境)とを含む情報処理システムであって、
前記第1の種別の環境へアクセス可能なユーザーか否かのユーザー認証を行う認証手段と、
前記認証手段によって前記第1の種別の環境へアクセス可能と認証されたユーザーがアクセス可能な前記第2の種別の環境を特定する環境特定情報を取得する取得手段と、(アクセス可能実行環境リストの取得)
前記取得手段で取得した前記環境特定情報に基づき、前記第2の種別の環境に関する認証情報をユーザーから取得することなく、前記環境特定情報によって特定される環境へアクセスするように制御する制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 5]
An information processing system including a first type of environment (development environment) and a second type of environment (execution environment),
an authentication means for performing user authentication to determine whether or not a user is permitted to access the first type environment;
an acquisition means for acquiring environment specification information that specifies the second type of environment that can be accessed by a user who has been authenticated by the authentication means as being able to access the first type of environment; and (acquisition of an accessible execution environment list).
a control means for controlling access to an environment identified by the environment specifying information without acquiring authentication information related to the second type of environment from a user, based on the environment specifying information acquired by the acquisition means;
An information processing system comprising:

[構成6]
アプリケーションソフトウェアを構築するためのクライアント端末における開発画面として、構築される前記アプリケーションソフトウェアで表示される画面に配置するコンポーネントが操作された場合のアクションを入力する入力領域を表示するように制御する表示制御手段と、
前記入力領域に入力されたアクションの情報を含む前記アプリケーションソフトウェアの定義情報を記録するように制御する記録制御手段と、
前記アプリケーションソフトウェアの実行環境で実行すべきアクションを定義した第1の情報を、前記定義情報に基づいて生成するように制御する第1の制御手段と、
前記アプリケーションソフトウェアを実行する際に前記実行環境にアクセスする端末装置が用いる第2の情報を、前記定義情報に基づいて生成するように制御する第2の制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 6]
a display control means for controlling to display, as a development screen in a client terminal for constructing application software, an input area for inputting an action to be taken when a component to be arranged on a screen displayed by the application software to be constructed is operated;
a recording control means for controlling to record definition information of the application software including information on the action input in the input area;
a first control means for controlling generation of first information defining an action to be executed in the execution environment of the application software based on the definition information;
a second control means for controlling a terminal device that accesses the execution environment when executing the application software to generate second information used by the terminal device based on the definition information;
An information processing system comprising:

[構成7]
表(データグリッド)の選択を受け付ける受付手段と、
選択された表の設定画面(プロパティボックス)を表示するように制御する表示制御手段と、
前記設定画面に対する第1の操作に応じて前記表に対してカラムを追加するように制御し、
前記設定画面に対する第2の操作に応じて、前記表の各カラムに対する設定を行うように制御する制御手段と
を有することを特徴とする情報処理装置。
[Configuration 7]
A receiving means for receiving a selection of a table (data grid);
A display control means for controlling to display a setting screen (property box) of the selected table;
Controlling to add a column to the table in response to a first operation on the setting screen;
and a control means for controlling the setting of each column of the table in response to a second operation on the setting screen.

[構成8]
表の選択を受け付ける受付手段と、
選択された表に含まれる複数のカラム毎のアクションの入力画面にそれぞれ対応する複数の選択肢を表示するように制御する表示制御手段と、
前記複数の選択肢のうちいずれかが選択されたことに応じて、選択された選択肢に対応するカラムのアクションの入力画面を表示し、ユーザーからのアクションの入力操作を受け付けるように制御する制御手段と
を有することを特徴とする情報処理システム。
[Configuration 8]
A receiving means for receiving a selection of a table;
a display control means for controlling the display of a plurality of options corresponding to each of the columns included in the selected table on an input screen for an action;
and a control means for controlling, in response to a selection of any one of the plurality of options, to display an input screen for an action in a column corresponding to the selected option and to accept an input operation of the action from a user.

[構成9]
プログラミング言語の入力領域に入力された文字列を取得する取得手段と、
前記取得手段で取得した文字列のうち、特定の識別子が付された要素文字列に基づき、当該要素文字列が、入力として取得すべき情報である入力項目と、出力すべき情報である出力項目とのいずれかの情報であることを特定する特定手段と、
前記特定手段で特定された内容を反映して、前記文字列に基づくプログラムを実行するように制御する制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 9]
An acquisition means for acquiring a character string input into an input area of a programming language;
a specification means for specifying, based on an element string to which a specific identifier is assigned, among the character strings acquired by the acquisition means, that the element string is information of either an input item which is information to be acquired as an input, or an output item which is information to be output;
a control means for controlling execution of a program based on the character string while reflecting the content identified by the identification means;
An information processing system comprising:

[構成10]
プログラミング言語でソースコードを記述する操作を含まず、選択肢から選択する操作を含む操作群に基づいて、構築されるアプリケーションソフトウェアの画面に対してアクションを定義する、あるいは構築される前記アプリケーションソフトウェアの画面に表示されるコンポーネントとしてアクションが定義された自動生成部品を配置するように制御する制御手段と(例えば、ワークフロー生成によるアクションが定義されたボタンの配置、キャンバスにアクションが定義されたUI画面、CRUDボタン配置によるボタンの配置、UI画面の生成、等)、
前記制御手段によってアクションが定義された画面と前記自動生成部品とのいずれかが選択され、アクションを表示する指示があったことに応じて、前記選択がなされた対象に定義されたアクションをプログラミング言語での文字列で表示するように制御する表示制御手段と、
前記表示制御手段によって表示された、アクションを表すプログラミング言語での前記文字列の修正操作を受け付ける受付手段と、
を有することを特徴とする情報処理システム。
[Configuration 10]
A control means for controlling to define an action for a screen of application software to be constructed based on a group of operations including an operation of selecting from options, not including an operation of writing source code in a programming language, or to place an automatically generated component having an action defined thereon as a component to be displayed on the screen of the application software to be constructed (for example, placement of a button having an action defined thereon by workflow generation, a UI screen having an action defined on a canvas, placement of a button by CRUD button placement, generation of a UI screen, etc.);
a display control means for controlling, when the control means selects either the screen on which an action is defined or the automatically generated component and an instruction is given to display the action, the action defined for the selected object is displayed as a character string in a programming language;
a reception means for receiving a correction operation of the character string in a programming language expressing an action displayed by the display control means;
An information processing system comprising:

[構成11]
アプリケーションの定義を行う操作を受け付ける受付手段と、
前記受付手段で受け付けた操作に基づいて定義された定義情報に基づいてネットワーク上の環境に前記アプリケーションをデプロイする指示を行う指示手段と、
前記指示手段による指示によって前記アプリケーションのデプロイが完了したことに応じて、前記アプリケーションを実行するためのアドレスであって、前記デプロイがされた場所を示すアクセス先情報を表示するように制御する表示制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 11]
A receiving means for receiving an operation for defining an application;
an instruction means for issuing an instruction to deploy the application in an environment on a network based on definition information defined based on an operation accepted by the accepting means;
a display control means for controlling, in response to completion of deployment of the application by an instruction from the instruction means, to display access destination information indicating a location where the application has been deployed, which is an address for executing the application;
An information processing system comprising:

[構成12]
構築するアプリケーションにおけるユーザー認証のための認証用画面のテンプレートとして、予め定められたアクションが定義された雛形コンポーネントが予め配置された前記認証用画面のレイアウト編集画面を表示するように制御する表示制御手段と、
前記レイアウト編集画面に前記雛形コンポーネントと異なる他のコンポーネントを配置する編集操作と、前記レイアウト編集画面おける前記雛形コンポ―ネントの表示形態を変更する編集操作と、のうち少なくともいずれかを受け付ける受付手段と、
前記受付手段で受け付けた編集操作を反映した前記認証用画面が表示されるアプリケーションを構築するための定義情報を記録するように制御する制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 12]
a display control means for controlling to display a layout editing screen of the authentication screen, on which a template component having a predetermined action defined therein is pre-arranged, as a template of the authentication screen for user authentication in the application to be constructed;
a receiving means for receiving at least one of an editing operation for arranging a component different from the template component on the layout editing screen and an editing operation for changing a display form of the template component on the layout editing screen;
a control means for controlling to record definition information for constructing an application in which the authentication screen reflecting the editing operation accepted by the accepting means is displayed;
An information processing system comprising:

[構成13]
マルチテナント環境への新規アカウントの登録指示を受け付ける受付手段と、
前記受付手段で新規アカウントの登録指示を受け付けた場合に、
・前記マルチテナント環境に登録済みの有効なアカウント数が特定の閾値に達して
ない場合には、新規アカウントは第1のデータベース環境に接続し、
・前記マルチテナント環境に登録済みの有効なアカウント数が前記特定の閾値を超えている場合には、新規アカウントは前記第1のデータベース環境とは異なる第2のデータベース環境に接続する
ように制御する制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 13]
A receiving means for receiving an instruction to register a new account in the multi-tenant environment;
When the reception means receives an instruction to register a new account,
If the number of active accounts registered in the multi-tenant environment has not reached a certain threshold, the new account connects to the first database environment;
a control means for controlling a new account to be connected to a second database environment different from the first database environment when the number of valid accounts registered in the multi-tenant environment exceeds the specific threshold;
An information processing system comprising:

発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
The invention is not limited to the above-described embodiments, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention.

100:開発者用端末、200:アプリユーザー用端末、201:アプリユーザー用端末201、300:開発環境、400:実行環境 100: Developer terminal, 200: App user terminal, 201: App user terminal 201, 300: Development environment, 400: Execution environment

Claims (12)

アプリケーション画面に配置するコンポーネントの処理内容についての指示を受け付けるように制御する受付制御手段と、
前記コンポーネントを表示する画面を含むアプリケーションを構築するように制御する構築制御手段と、
前記コンポーネントがデータのダウンロードに係るコンポーネントの場合であって、前記構築制御手段により構築されたアプリケーションのユーザーから前記コンポーネントに対する操作を受け付けた場合、前記受付制御手段により受け付けた処理内容に基づいて処理を実行するように制御する実行制御手段と
を備えることを特徴とする情報処理システム。
A reception control means for controlling reception of instructions regarding the processing contents of components to be arranged on an application screen;
A construction control means for controlling construction of an application including a screen displaying the component;
and an execution control means for controlling, when the component is a component related to data downloading and an operation on the component is received from a user of an application constructed by the construction control means, to execute processing based on the processing content received by the reception control means.
前記処理内容とは、
アプリケーション画面の制御に係る処理、
ビジネスロジック、
データベース処理、
データをアップロードさせる処理、
データをダウンロードさせる処理、
ファイルをダウンロードさせる処理、
所定の場所に保存されたデータをダウンロードさせる処理、
オンライン上に保存されたデータをダウンロードさせる処理、
データベースに保存されたデータをダウンロードさせる処理、
アップロードされたデータをダウンロードさせる処理、
アプリケーション画面の制御に係る処理、ビジネスロジック、もしくは、データベース処理の処理結果をダウンロードさせる処理
のうち、少なくとも1つを含む処理であること
を特徴とする請求項1に記載の情報処理システム。
The processing content is:
Processing related to control of application screens;
Business logic,
Database processing,
The process of uploading data,
The process of downloading data,
The process of downloading files
A process to download data stored in a given location;
The process of downloading data stored online;
A process to download data stored in a database;
The process of downloading uploaded data;
2. The information processing system according to claim 1, wherein the process includes at least one of a process related to control of an application screen, a business logic, and a process for downloading a result of a database process.
前記実行制御手段は、
アプリケーション画面の制御に係る処理、
ビジネスロジック、
データベース処理、
データをアップロードさせる処理、
データをダウンロードさせる処理、
ファイルをダウンロードさせる処理、
所定の場所に保存されたデータをダウンロードさせる処理、
オンライン上に保存されたデータをダウンロードさせる処理、
データベースに保存されたデータをダウンロードさせる処理、
アップロードされたデータをダウンロードさせる処理、
および、 アプリケーション画面の制御に係る処理、ビジネスロジック、もしくは、データベース処理の処理結果をダウンロードさせる処理
のうち、2以上の処理を続けて実行するように制御すること
を特徴とする請求項1に記載の情報処理システム。
The execution control means
Processing related to control of application screens;
Business logic,
Database processing,
The process of uploading data,
The process of downloading data,
The process of downloading files
A process to download data stored in a given location;
The process of downloading data stored online;
A process to download data stored in a database;
The process of downloading uploaded data;
and controlling the execution of two or more processes in succession among a process related to control of an application screen, a business logic, or a process for downloading a processing result of a database processing.
前記構築制御手段は、前記受付制御手段により受け付けた処理内容を前記コンポーネントに対応付けて記憶するように制御し、
前記実行制御手段は、前記ユーザーから操作を受け付けたコンポーネントに対応付けて記憶されている処理内容に基づいて処理を実行するように制御すること
を特徴とする請求項1に記載の情報処理システム。
the construction control means controls so as to store the process content received by the reception control means in association with the component;
2. The information processing system according to claim 1, wherein the execution control means controls the execution of the process based on processing content stored in association with the component that has received an operation from the user.
前記実行制御手段は、
データのダウンロードに係る処理を実行するように制御すること
を特徴とする請求項1に記載の情報処理システム。
The execution control means
2. The information processing system according to claim 1, further comprising control means for executing a process relating to downloading of data.
前記受付制御手段は、
データのダウンロードに係る、関数または予約語を用いた指示を受け付けるように制御すること
を特徴とする請求項1に記載の情報処理システム。
The reception control means
2. The information processing system according to claim 1, further comprising control for accepting an instruction using a function or a reserved word relating to downloading of data.
前記受付制御手段は、
ソースコードによって記述された指示を受け付けるように制御すること
を特徴とする請求項1に記載の情報処理システム。
The reception control means
2. The information processing system according to claim 1, further comprising control for accepting instructions written in source code.
前記コンポーネントはリンクであること
を特徴とする請求項1に記載の情報処理システム。
2. The information processing system according to claim 1, wherein the component is a link.
前記コンポーネントの表示形式は、
文字列、画像、アイコンのうち少なくとも1つを含むこと
を特徴とする請求項1に記載の情報処理システム。
The display format of the component is:
2. The information processing system according to claim 1, wherein the information includes at least one of a character string, an image, and an icon.
前記処理内容についての指示を受け付ける入力領域を表示するように制御する表示制御手段
をさらに備えることを特徴とする請求項1に記載の情報処理システム。
2. The information processing system according to claim 1, further comprising a display control means for controlling so as to display an input area for receiving an instruction regarding the processing content.
アプリケーション画面に配置するコンポーネントの処理内容についての指示を受け付けるように制御する受付制御ステップと、
前記コンポーネントを表示する画面を含むアプリケーションを構築するように制御する構築制御ステップと、
前記コンポーネントがデータのダウンロードに係るコンポーネントの場合であって、前記構築制御ステップにより構築されたアプリケーションのユーザーから前記コンポーネントに対する操作を受け付けた場合、前記受付制御ステップにより受け付けた処理内容に基づいて処理を実行するように制御する実行制御ステップと
を備えることを特徴とする情報処理システムの制御方法。
an acceptance control step of controlling to accept instructions regarding the processing contents of components to be arranged on the application screen;
A construction control step of controlling construction of an application including a screen displaying the component;
and an execution control step of controlling, when the component is a component related to data downloading and an operation on the component is received from a user of the application constructed by the construction control step, the component being executed based on the processing content received by the reception control step.
少なくとも1つのコンピュータを、請求項1乃至10のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラム。 A program for causing at least one computer to function as each of the means of the information processing system described in any one of claims 1 to 10.
JP2023062910A 2023-04-07 2023-04-07 Information processing system, information processing method, and program Pending JP2024149188A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023062910A JP2024149188A (en) 2023-04-07 2023-04-07 Information processing system, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023062910A JP2024149188A (en) 2023-04-07 2023-04-07 Information processing system, information processing method, and program

Publications (1)

Publication Number Publication Date
JP2024149188A true JP2024149188A (en) 2024-10-18

Family

ID=93062320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023062910A Pending JP2024149188A (en) 2023-04-07 2023-04-07 Information processing system, information processing method, and program

Country Status (1)

Country Link
JP (1) JP2024149188A (en)

Similar Documents

Publication Publication Date Title
US10705942B1 (en) Simulated testing of API
US6513721B1 (en) Methods and arrangements for configuring portable security token features and contents
WO2009096045A1 (en) Application development support device, program, and recording medium
JPWO2009116163A1 (en) Application development support apparatus, program, and recording medium
JP5050371B2 (en) Operation record reproduction apparatus and program
TWI771832B (en) Computer-implemented system and method for managing electronic document
CN114445023A (en) Approval process configuration method, device, equipment and storage medium
JP6002302B2 (en) Web application generation system, Web application generation system control method, Web application generation system program, Web application generation device, Web application generation device control method, and Web application generation device program
JP2024149188A (en) Information processing system, information processing method, and program
JP2024149184A (en) Information processing system, information processing method, and program
JP2025098619A (en) Information processing system, control method for information processing system, and program
JP2024076015A (en) Information processing system, control method for information processing system, and program
JP2024076016A (en) Information processing system, control method for information processing system, and program
JP2024076008A (en) Information processing system, control method for information processing system, and program
JP2024076012A (en) Information processing system, control method for information processing system, and program
JP2024076009A (en) Information processing system, control method for information processing system, and program
JP2024076011A (en) Information processing system, control method for information processing system, and program
JP2024076010A (en) Information processing system, control method for information processing system, and program
JP2024076005A (en) Information processing system, control method for information processing system, and program
JP2024076014A (en) Information processing system, control method for information processing system, and program
JP2024076006A (en) Information processing system, control method for information processing system, and program
JP2024076013A (en) Information processing system, control method for information processing system, and program
JP2024076007A (en) Information processing system, control method for information processing system, and program
JP2024075981A (en) Information processing system, control method for information processing system, and program
JP2025056634A (en) Information processing system, information processing method, and program

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20250826