Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7807664B2 - Information processing system, control method for information processing system, and program - Google Patents
[go: Go Back, main page]

JP7807664B2 - Information processing system, control method for information processing system, and program - Google Patents

Information processing system, control method for information processing system, and program

Info

Publication number
JP7807664B2
JP7807664B2 JP2022187339A JP2022187339A JP7807664B2 JP 7807664 B2 JP7807664 B2 JP 7807664B2 JP 2022187339 A JP2022187339 A JP 2022187339A JP 2022187339 A JP2022187339 A JP 2022187339A JP 7807664 B2 JP7807664 B2 JP 7807664B2
Authority
JP
Japan
Prior art keywords
information
developer
screen
execution environment
action
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.)
Active
Application number
JP2022187339A
Other languages
Japanese (ja)
Other versions
JP2024076009A (en
JP2024076009A5 (en
Inventor
文洋 柴本
光広 清野
幸佑 高橋
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 JP2022187339A priority Critical patent/JP7807664B2/en
Publication of JP2024076009A publication Critical patent/JP2024076009A/en
Publication of JP2024076009A5 publication Critical patent/JP2024076009A5/ja
Priority to JP2026004833A priority patent/JP2026065119A/en
Application granted granted Critical
Publication of JP7807664B2 publication Critical patent/JP7807664B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

情報処理システム、情報処理システムの制御方法、及びプログラム関し、特に、アプリケーションソフトウェアの構築のために用いて好適な技術に関する。 This article 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 have been no-code/low-code development tools that build application software (hereinafter referred to as "applications") according to a definition, which are used as no-code/low-code development tools that require little or no coding in a programming language.

特許文献1には、構築するアプリケーションの画面を編集するためのレイアウトエディタ画面に、ボタン、テキストボックス等の画面部品のいずれかをドラッグ&ドロップで配置でき、配置した画面部品を入出力定義テーブルに記憶することが提案されている。特許文献2には、クラウドサービスの実行環境にアプリケーションの仮想コンポーネントをデプロイし、アプリケーションをネットワーク経由で利用者に提供するシステムが提案されている。 Patent Document 1 proposes that screen components such as buttons and text boxes can be placed by dragging and dropping on a layout editor screen for editing the screen of an application to be constructed, and that the placed screen components are stored in an input/output definition table. Patent Document 2 proposes a system that deploys virtual components of an application in a cloud service execution environment and provides the application to users via a network.

特開2019-49858号公報Japanese Patent Application Laid-Open No. 2019-49858 特開2022-92310号公報Japanese Patent Application Laid-Open No. 2022-92310

特許文献2のようなクラウドサービスの実行環境のアプリケーションを構築した場合、クラウドサービス側(サーバー側)の実行環境と、実行環境にアクセスするアプリケーションの利用者の端末装置が連携することによりアプリケーションが実行される。そのため、アプリケーションの実行の際に実行環境と端末装置とでそれぞれ用いる情報を生成する必要がある。しかしこれらを開発者が明確に分別するように管理して開発するのは、開発の煩雑化を招く。特許文献1、2では、これらの課題について考慮されていない。 When an application is built for a cloud service execution environment such as that described in Patent Document 2, the application is executed by linking the execution environment on the cloud service side (server side) with the terminal device of the application user who accesses the execution environment. Therefore, when the application is executed, it is necessary to generate information to be used in both the execution environment and the terminal device. However, if the developer were to develop the application while clearly managing these, this would result in complicated development. Patent Documents 1 and 2 do not take these issues into consideration.

そこで本発明は、上記課題に鑑みアプリケーショ開発煩雑さを低減す仕組みを提供することを目的とする。
In view of the above problems , the present invention aims to provide a mechanism for reducing the complexity of application development.

端末装置を含む情報処理システムであって、
前記情報処理システムは、
アプリケーションを構築するための開発画面として、構築される前記アプリケーションで表示される画面に配置するコンポーネントが操作された場合のアクションを入力する入力領域を表示するように制御する表示制御手段と、
前記入力領域に入力されたアクションの情報を含む前記アプリケーションの定義情報を記録するように制御する記録制御手段と、
前記アプリケーションの実行環境で実行すべきアクションを定義した第1情報を、前記定義情報に基づいて生成するように制御する第1制御手段と、
前記アプリケーションを実行する際に前記実行環境にアクセスする端末装置が用いる第2情報を、前記定義情報に基づいて生成するように制御する第2制御手段と、
を有し、
前記第2制御手段は、
前記実行環境から送信された前記定義情報のうち、前記アクションの情報に基づいて、アプリケーションで表示される画面に配置するコンポーネントが、前記実行環境に送信すべき値が入力される入力項目であるか、前記実行環境から送信された値を表示すべき出力項目であるかを定義した前記第2情報を生成するように制御し、
前記端末装置は、
構築された前記アプリケーションの実行の際に、前記第2情報に基づいて、前記コンポーネントが前記入力項目の場合は前記アプリケーションの画面を介して入力された値を前記実行環境に送信する、及び/又は、前記コンポーネントが前記出力項目の場合は前記実行環境から受信した値を前記アプリケーションの画面に表示するように制御する第3制御手段
を有することを特徴とする情報処理システム。
An information processing system including a terminal device,
The information processing system includes:
a display control means for controlling the display of an input area for inputting an action when a component to be arranged on a screen displayed by the application to be constructed is operated as a development screen for constructing the application;
a recording control means for controlling recording of definition information of the application 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 based on the definition information;
a second control means for controlling a terminal device that accesses the execution environment when executing the application to generate second information used by the terminal device based on the definition information;
and
The second control means
generating the second information defining whether a component to be placed on a screen displayed by an application is an input item into which a value to be transmitted to the runtime environment is input or an output item into which a value transmitted from the runtime environment is to be displayed, based on information about the action among the definition information transmitted from the runtime environment;
The terminal device
a third control means for controlling, based on the second information, when the constructed application is executed, to transmit a value input via a screen of the application to the execution environment if the component is the input item, and/or to display a value received from the execution environment on the screen of the application if the component is the output item.
An information processing system comprising:

本発明によればアプリケーショ開発煩雑さを低減することができる。 According to the present invention , it is possible to reduce the complexity of application development.

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

以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the scope of the claimed invention, 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. Furthermore, identical or similar components are designated by the same reference numerals, and redundant descriptions will be omitted.

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

<システム構成>
図1に、本発明の実施形態としての情報処理システムのシステム構成図を示す。図1には、ソフトウェア開発を行うためのシステムと、開発されたソフトウェアを使用するためのシステムとを示す。
<System Configuration>
Fig. 1 shows a system configuration diagram of an information processing system according to an embodiment of the present invention, which includes 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, which can be configured as a personal computer (hereinafter referred to as PC) or smartphone. In other words, it is the 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 on at least one recording medium included in development environment 300. Details of developer information 301 will be described later using Figure 14(a).

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

配信エンジン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 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 storage 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 storage area for each developer account. For example, if developers A, B, and C are able to log in, it includes a developer A area 323 for developer A, a developer B area 324 for developer B, and a developer C area 325 for developer C. Each developer area stores definition information for the apps developed by each developer. For example, developer A area 323 stores app definition 323a (including app UI definition information and app execution environment programs, which will be described later in Figure 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 on the developer terminal 100, and logs in to the development environment. Once logged in to the development environment, the developer receives from the development environment the client program 322 and the app definition (UI definition information) that is the content of previous development work that was saved. The developer then performs an operation to design a new application or an operation to update the design of an existing (in-progress) application, and sends the resulting app definition information (app definition, UI definition information) to the development environment 300. The development environment 300 stores the received app 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 a terminal that can connect to the Internet is available, developers can develop applications regardless of location.

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

マルチテナント実行環境410は、複数の開発者に共用されるマルチテナント環境の実行環境であり、複数の開発者によって開発されたアプリケーションがデプロイされる。すなわち、複数の開発者によって共有される環境であり、複数の開発者の複数のアプリを構築可能な環境である。マルチテナント実行環境410には、ユーザー情報411、実行エンジン412、配信エンジン415、ストレージ420、DBセット433を含む。 The multi-tenant execution environment 410 is a multi-tenant execution environment shared by multiple developers, and applications developed by multiple developers are deployed to it. In other words, it is an environment shared by multiple developers, and is an environment 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 the application, such as an email address (username) that serves as the user account ID for the deployed application (built application), and a password. User information 411 is recorded on 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 multi-tenant execution environment 410, and includes a processor 413 and memory 414. The processor 413 consists of at least one processor, and may be a single processor on the cloud, or a processor group combining multiple processors. The memory 414 is at least one recording medium on which programs to be executed by the processor 413 are recorded. Of the various flowcharts described below, those described as being executed by the multi-tenant execution environment 410 are executed by the execution engine 412. In other words, this is realized when the processor 413 deploys and executes the programs recorded in the memory 414 in an area of the multi-tenant execution environment 410 that serves as work memory. The programs executed here include programs that execute application actions.

配信エンジン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, access destination information 421 for accessing the execution environment (multi-tenant execution environment 410) is recorded in a specified area of storage 420 (specified folder, specified bucket, specified level). It also has developer areas, which are storage areas 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. Each developer area stores definition information for apps developed by each developer and deployed from development environment 300. For example, developer A area 423 stores app definition 423a.

DBセット430は、実行環境410にデプロイされたアプリケーションが用いるデータベースに関する情報群である。DBセット430は、少なくとも1つの記録媒体の記憶領域に記憶される。DBセット430の詳細に関しては図23を用いて後述する。 DB set 430 is a group of information related to databases used by applications deployed in execution environment 410. DB set 430 is stored in the storage area of at least one recording medium. Details of DB set 430 will be described later using Figure 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 owner developer using development environment 300 are deployed therein. 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 manner, 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. Apart from the fact that these are dedicated to a single developer, they have the same functions as the user information 411, execution engine 412, distribution engine 415, storage 420, and DB set 433 of the multi-tenant execution environment 410 described above, 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 in Figure 1, for example, an operator could provide the multi-tenant execution environment 410 to developers free of charge and the single-tenant execution environments for a fee. The operator of this system would need to pay maintenance costs to the resource and service provider (cloud service provider) for both the multi-tenant execution environment 410 and each single-tenant execution environment. By having the operator cover the maintenance costs of the multi-tenant execution environment 410 and provide it free of charge to multiple developers, developers would not need to incur costs for trial use of the system, making it easier for many developers to use and promoting the spread of the system. The operator would recover costs by charging developers for the single-tenant execution environments.

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

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

図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) that can be used 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などで構成される。 Memory 102 is, for example, RAM (volatile memory using semiconductor elements, etc.). CPU 101 controls each part of the information processing device using memory 102 as work memory in accordance with programs stored in, for example, non-volatile memory 103. Non-volatile memory 103 stores image data, audio data, other data, and various programs for CPU 101 to operate. Non-volatile memory 103 is, for example, composed of a hard disk (HD) or ROM.

画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては画像処理部104を用いずにCPU101がプログラムに従って画像処理を施すことも可能である。 Under 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 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. Furthermore, depending on the type of image processing, the CPU 101 may 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 that constitute a GUI (Graphical User Interface). CPU 101 generates display control signals according to a program and controls each part of the information processing device to generate video signals for display on display 105 and output them to display 105. Display 105 displays images based on the output video signals. Note that the information processing device itself may only have an interface for outputting video signals 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 for processes executed by developer terminal 100, application user terminal 200, and application user terminal 201 will be assumed to be the display 105 of each operator.

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

記録媒体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 and writes data from and to the attached recording medium 108 under 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 is used to input and output video and audio signals. The communication I/F 110 is an interface that communicates with external devices and the Internet 111, sending and receiving various data such as files and commands. The developer terminal 100 can communicate with (send and receive information from) the development environment 300 on the Internet 111 using the communication I/F 110. The application user terminals 200 and 201 can communicate with (send and receive information from) the execution environment 400 on the Internet 111 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 flowcharts of the login process. This process covers the process from logging in to the development environment 300 from the developer terminal 100 to displaying the UI editor. When the developer terminal 100 launches 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 shown in FIG. 3A begins. The process shown in FIG. 3A is realized by the CPU 101 of the developer terminal 100 loading into memory 102 a program stored in nonvolatile memory 103 for executing the internet browser software and a client program 322 received from the development environment 300. Hereinafter, the process simply described as the process executed by the developer terminal 100 refers to the process in which the CPU 101 of the developer terminal 100 loads into memory 102 a program stored in nonvolatile memory 103 for executing the internet browser software and a client program 322 received from the development environment 300 and executes them.

開発者用端末100において、インターネットブラウザソフトを立ち上げ、本実施形態の開発システム(アプリケーション開発プラットフォーム)のURLを指定してアクセスすると、開発環境300の配信エンジン305がアクセスを検知し、アクセス元の開発者用端末100にクライアント用プログラム322を送信する。 When the developer terminal 100 launches the internet browser software and accesses the development system (application development platform) of this embodiment by specifying its URL, the distribution engine 305 of the development environment 300 detects the access and sends 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 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 the login screen for the development system of this embodiment, as well as fields for entering 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 for the developer ID and password on the login screen. The user's input operations are performed using the operation unit 106. The developer ID is user identification information used to identify (specify) the developer user. In this embodiment, the developer ID (user name) is assumed to be an email address. Furthermore, the password used as the secret code is assumed to be an arbitrary character string, but it may also be other secret code, such as biometric authentication information (fingerprint authentication is information used for face authentication) or pattern authentication information (information on the 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 hereafter, 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 developer account registration processing. Details of the developer account registration processing will be described later using Figure 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 sends the information entered in the developer ID and password input fields on the login screen (the entered developer ID and password) to the development environment 300 as login information. After sending, authentication processing is performed in the development environment 300, so the developer terminal 100 waits for the results.

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

S310では、開発者用端末100は、開発環境300から実行環境リストを受信したか否かを判定する。開発環境300はログイン認証が成功すれば実行環境リストを開発者用端末100に送信するため、実行環境リストを受信したということは、ログイン認証に成功した(ログインできた)ということである。実行環境リストを受信した場合にはS311に進み、そうでない場合にはS309に戻る。 In S310, the developer terminal 100 determines whether it has received an execution environment list from the development environment 300. If 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 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 on the display 105 based on the received execution environment list. 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 differ from the screen of the built 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 execution environment options displayed in S311. In the display example of Figure 5(a), two options are displayed as execution environments accessible to the logged-in developer: 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. The selection made here is the destination to which the application updated in subsequent work during this login will be deployed. The execution environment is not accessed at this point. The execution environment selected here can be changed using the operations 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; if not, the process waits for the execution environment to be selected in S312.

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

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 developer terminal 100 waits for the 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, based on the app information, displays on the display 105 a list of applications (app list) owned (or under development) by the logged-in user.

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 app list as the "selected app" in memory 102, and also transmits information identifying the selected app (such as the app ID and app name) to the development environment 300. Upon receiving the information identifying the selected app, the development environment 300 obtains definition information (app definition) for the selected app from the area of storage 320 for 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 it has received definition information (UI definition information) for the selected app from the development environment 300. If it has received definition information for the selected app, it records the received definition information for the selected app in memory 102 and proceeds to S319. If not, it waits for the reception of definition information in S318. In this embodiment, this definition information is a Json file in Json format that describes various definitions related to the application. Thereafter, when the selected app is displayed on the display 105, it is displayed based on the definition information recorded in memory 102. When an operation to update the selected app (e.g., changing the layout of UI components) is performed using the UI editor process described below, the definition information in memory 102 is updated to define the updated content. Then, when a save command is received, the latest definition information recorded in memory 102 is sent to the development environment 300 and saved in the logged-in developer's area of storage 320. This reduces the frequency of communication with the development environment 300 and prevents a decrease in response time due to communication, allowing for smooth update operations.

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 the screen based on the received definition information. For example, a canvas (editing area of the UI screen) with a shape corresponding to whether the selected app is for desktop or mobile use (i.e., a shape corresponding to the type of device on which the app will be used) is displayed. For desktop use, a rectangular canvas with a 16:9 aspect ratio is used, and for mobile use, a canvas with a vertical aspect ratio similar to that of a smartphone is used. A list of UI screens owned by (belonging to) the selected app is displayed in the submenu area (described below). (Strictly speaking, this process is performed in S401 of Figure 4, described below.) The canvas also displays components (UI parts to be placed on the UI screen) that will be placed on the UI screen selected by default (the initial UI or the UI screen edited at the time of the last save). 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 ends in S319, and the process proceeds to S401 of Figure 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 to create a new application has been issued, the process proceeds to S321; otherwise, the process returns to S316.

S321では、開発者用端末100は、新規作成するアプリケーションを、デスクトップ用(PC用)とするかモバイル用とするかの選択画面を表示し、いずれかを選択する操作を受け付ける。デスクトップ用アプリケーションとは、デスクトップPC、ノートPCなどのアプリユーザー用端末200からアクセスされ、操作されることを想定したアプリケーションである。モバイル用アプリケーションとは、スマートフォンなどのアプリユーザー用端末201からアクセスされ、操作されることを想定したアプリケーションである。 In S321, the developer terminal 100 displays a selection screen asking whether the newly created application should be for desktop use (for PCs) or for mobile use, and accepts an operation to select one of the options. A desktop application is an application that is intended to be accessed and operated from an application user terminal 200 such as a desktop PC or laptop PC. A mobile application is an application that is intended to be accessed and operated from an application 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. Upon accepting the input of the app information, the information on whether the application is for desktop (PC) or mobile use 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 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 use, the app name, and the app ID are recorded. In this way, the information on whether the application is for desktop (PC) or mobile use, the app name, and the app ID are also recorded in the definition information for 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 that corresponds 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 S323, and the program then proceeds to S401 in Figure 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 work memory. Hereinafter, any description of a process simply executed by the development environment 300 will be taken to mean 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 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 combination 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 the login is successful (authentication was successful, the user was authenticated, authentication is successful). If the login is successful, the process proceeds to S335; if the login is not successful, the process proceeds to S334, and information indicating a login error is sent to the developer terminal 100.

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 sends to the developer terminal 100 a list of execution environments for developers (logged-in developers) whose login has been approved, which are included in the developer information 301. As shown in FIG. 14(a), the developer information 301 records accessible execution environment IDs for each developer, in addition to an email address (username, developer ID) and password. Each execution environment ID is an account ID for a cloud service (web service) and is assumed to be a 12-digit ID in this embodiment. For developers who can access multiple execution environments, the 12-digit execution environment IDs are recorded, separated by commas. In S335, the accessible execution environment IDs (one or more execution environment IDs separated by commas) for the logged-in developer are sent to the developer terminal 100. That is, in S335, the execution environments accessible by the logged-in developer are identified by referencing the developer information 301. In this way, the accessible execution environments for each developer (the execution environments available to each developer) are recorded in the developer information 301 stored in the development environment 300. This login-enabled execution environment can only be obtained by the developer who has been granted permission to log in. Furthermore, only the developer who has been granted permission to log in can obtain the execution environment that they themselves have access to. This eliminates the need for developers to manage information for accessing their own accessible execution environment separately from the information used to log in to the development environment 300. It also prevents other users from accessing the execution environment illegally.

S336では、開発環境300は、S313で開発者用端末100から送信された選択中実行環境を特定する情報(環境特定情報)を受信したか否かを判定する。選択中実行環境を特定する情報を受信した場合にはS337に進み、そうでない場合には選択中実行環境を特定する情報の受信を待つ。 In S336, the development environment 300 determines whether it has received information identifying the selected execution environment (environment identification information) sent from the developer terminal 100 in S313. If it has received information identifying the selected execution environment, it proceeds to S337; if not, it waits for reception of information identifying 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 obtains app information indicating all applications owned by (created by) the logged-in developer from the logged-in developer's area in storage 320, and sends this information to the developer terminal 100. The app information sent 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 or not it has received information about the new app (including information about whether it is for desktop (PC) or mobile use, the app name, and the app ID) sent from the developer terminal 100 in S322. If it has received information about the new app, it proceeds to S340; if not, it 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 logged-in developer's area of storage 320 based on the information about the new app received in S339. The definition information recorded here includes information about whether the app is for desktop (PC) or mobile use, the app name, and the app ID. To distinguish the app from other users' apps in the multi-tenant execution environment 410, the development environment 300 records the app ID by appending an eight-digit developer code that uniquely corresponds to the developer ID of the developer who owns the app immediately before the ID entered by the developer in S322. The login process then ends. Thereafter, when performing internal processing or displaying the app ID in a programming language on the action board, the ID appended with the developer code of the logged-in developer is used. Furthermore, when displaying the app ID in a UI editor, etc., only the ID portion entered 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 it has received information identifying the selected app sent from the developer terminal 100 in S317. If it has received information identifying the selected app, it proceeds to S342; if not, it returns to S339.

S342では、開発環境300は、S341で受信した選択中アプリを特定する情報に基づき、ストレージ320のうち、ログイン開発者の領域から、選択中アプリの定義情報(アプリ定義)を取得し、開発者用端末100に送信する。ここで送信する定義情報は、選択中アプリに関する詳細な定義情報(コンポーネントの配置や後述するアクションを示す情報など)を含む。そして、ログイン処理を終了する。 In S342, the development environment 300 retrieves definition information (app definition) for the selected app from the logged-in developer's area in storage 320 based on the information identifying the selected app received in S341, and transmits this information to the developer device 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). The login process then ends.

<UIエディタ処理>
図4、図5(b)を用いて、UIエディタ処理について説明する。UIエディタ処理は、UIエディタ画面(アプリケーション開発画面)に対する開発者(ユーザー)からの操作に応じて、構築するアプリケーションの各種定義(UI部品の定義、アクション定義)を行う処理である。
<UI Editor Processing>
The UI editor process will be described with reference to Figures 4 and 5B. The UI editor process is a process for defining various aspects of the application to be constructed (UI component definitions, action definitions) in response to operations by a developer (user) on the 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 submenu area 520, and a canvas 530 (the 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 indicating 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 content displayed in the main menu area 510, submenu area 520, and canvas 530 does not change. In this way, by changing the selected execution environment to which the same application is 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 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 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 on 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 is displayed as a pull-down menu based on the definition information of the selected app obtained in S318, and by selecting any UI screen from the list, it is possible to change the UI screen being edited and displayed on the canvas 530.

メインメニュー領域510には、メインメニューのメニュー項目としての選択肢アイコンとして、アプリ一覧ボタン511、UI画面ボタン512、ワークフローボタン513、設定ボタン514、環境一覧ボタン515、データベースボタン516、ファイルマネージャーボタン517、ユーザー管理ボタン518、スナップショットボタン519が表示される。これらの選択肢の押下に応じた処理については図12の画面切替処理で後述する。 The main menu area 510 displays the following selection icons for the main menu items: 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. The processing performed in response to pressing these selections will be described later in the screen switching processing of Figure 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 Figure 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 the layout editing area for the selected UI screen of the selected app (the UI screen whose UI screen name is displayed in the selected UI screen box 503). The canvas 530 in Figure 5(b) is an example of a canvas display for a desktop application, displayed in a desktop format. The user can select any UI component (UI part) from the list of UI components displayed in the submenu area 520 and place it in the canvas area 530 by dragging and dropping it. The size and position of a UI component can be adjusted by selecting it in the canvas area 530. Furthermore, by selecting a UI component in the canvas area 530, right-clicking, and selecting properties from the right-click menu (context menu), more detailed settings such as color scheme can be made. Furthermore, by selecting an action from the context menu, an action board is displayed, allowing the user to set the action to be executed when the UI component is operated. By right-clicking while the cursor is in a blank area of the canvas 530, the canvas's context menu can be displayed. By selecting an action from the menu, you can set the action to be executed when the UI screen of that canvas is loaded in the built 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" for an app with an app name "UI1." Operation path 531a is a selection frame indicating the selected UI component and an operation path (operation handle) that accepts zoom instructions, indicating 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 for 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 to be displayed when the selected app is deployed and built in an execution environment, and accessed and executed from the app user terminal 200, 201. 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 an operation to select one 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 processing ends, and the process proceeds to the screen switching processing described below at 112. 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 app recorded in memory 102. If the UI screen has previously had UI components placed on it, the UI components placed on it according to the definition information are displayed on the canvas 530. In other words, if the UI screen was previously created but only partially, development can continue from that point. If the UI screen selected in S402 is a newly created UI screen, the canvas 530 is displayed blank with no UI components 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 components 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部品の種別の一覧が表示される。 At S405, the developer terminal 100 displays a list of UI components in the submenu area 520. That is, the display switches from the UI screen list of the selected app to a UI component list. UI components that can be placed on the canvas 530 include types: INPUT, Button, Display (information display component), Navigation, Layout, and Chart, each of which has multiple UI components categorized under that type. In the UI component list, a list of UI component types is first displayed, as shown in FIG. 5(c). When an operation to select one of the displayed types is performed, the UI components classified under the selected type are expanded and displayed. The aforementioned FIG. 5(b) shows an example in which the option 522 for the type corresponding to INPUT is selected, and a list of UI components classified under INPUT is displayed. UI components classified under 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 component 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 shown in Figure 5(b), the list of UI components for the expanded type is collapsed, and a list of UI component types is displayed.

S406では、開発者用端末100は、サブメニュー領域520に表示されたUI部品が選択されたか否かを判定する。より詳しくは、サブメニュー領域520に表示されたUI部品をドラッグする操作が行われたか否かを判定する。サブメニュー領域520に表示されたUI部品が選択された場合にはS407に進み、そうでない場合にはS411へ進む。 In S406, the developer terminal 100 determines whether a UI component displayed in the submenu area 520 has been selected. More specifically, it determines whether an operation to drag a UI component displayed in the submenu area 520 has been performed. If a UI component 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 a dragged UI component onto the canvas 530 has been performed. If an operation to specify a position on the canvas 530 has been performed, the process proceeds to S408; if not, the process waits for 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 component 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 component (a type of UI component) that has already been placed. If it is not included in the area of the tab component, the process proceeds to S409; if it is included in the area of the tab component, the process proceeds to S410. An example of a tab component is the tab component 536 shown in Figure 5(b). A tab component has multiple tabs (in the example of Figure 5(b), there are three tabs displayed as ITEM1, ITEM2, and ITEM3), and when one of the tabs is selected, the display content displayed by the tab component 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の説明に戻る。 Tab components will be explained using Figures 6(a) and (b). Figure 6(a) is an example of a display on the display 105 when a tab component 601 is placed on a canvas 530 displaying a UI screen different from that shown in Figure 5(b). The area indicated by the operation bus 601a of the tab component 601 is the area occupied by the tab component 601. By operating the operation bus 601a, the overall display position and overall display size of the tab component 601, including the element screen, can be changed. The tab component 601 has three tabs: tab 610, tab 620, and tab 630. Each tab displays a label as the tab name, which can be set by the developer in the tab component's property settings. In the example shown, they are displayed as Tab0, Tab1, and Tab2, respectively. The number and order of tabs can be changed in the tab component's property settings. Tab properties are set by opening a tab property box from the tab's context menu in S706 of the context menu processing described later in FIG. 7 , and then performing setting operations on the tab property box (setting screen) that is displayed accordingly. The element screen area 602 indicated by the dashed-dotted line (illustrated for illustrative purposes only and not actually displayed) is an area in which the display content changes depending on the selected tab. The display content corresponding to each tab displayed in the element screen area 602 is referred to as the element screen corresponding to each tab. Different UI components can be arranged on the element screen corresponding to each tab. The example in FIG. 6A shows an example in which tab 610 is selected and the element screen corresponding to tab 610 is displayed. In the illustrated example, UI components 611 and 612 are arranged on the element screen corresponding to tab 610. The example in FIG. 6B shows an example of a display in which tab 620 is clicked from the state in FIG. 6A , changing the selected tab from tab 610 to tab 620. In FIG. 6B , the element screen area 602 displays the element screen corresponding to the selected tab 620. In the illustrated example, a UI component 621 is placed on the component screen corresponding to tab 620. In the examples of FIGS. 6(a) and 6(b), the definition information at least records the UI component ID (UI component identification information) of tab component 601 and the position of tab component 601 in the UI screen in association with the ID (UI screen identification information) of the UI screen being edited on canvas 530. Also, the IDs of UI components 611 and 612 and their respective positions in the component screen of tab 610 are recorded in association with the ID of tab 610 of tab component 601. Also, the ID of UI component 621 and the position of UI component 621 in the component screen of tab 620 are recorded in association with the ID of tab 620 of tab component 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 component selected in S406 from the submenu area 520 at the specified position on the canvas 530 at a default size, and records the information defining this in the definition information stored in memory 102. That is, in the definition information, the type of UI component placed in S410, UI component ID, placement coordinates, placement size, etc. are recorded in association with the ID of the UI screen where the component is to be placed (the UI screen being edited).

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 component selected in S406 from the submenu area 520 at a default size on the element screen (the currently displayed element screen) corresponding to the selected tab among the tab components at the specified position on the canvas 530, and records the information defining this in the definition information stored in memory 102. That is, the definition information associates the ID of the destination UI screen (the UI screen being edited) with the type of UI component placed in S410, the tab component ID as the UI component ID, the ID of the selected tab for that tab component, the placement coordinates in the element screen corresponding to the selected tab, the placement size, and other information. In this way, in this embodiment, it is possible to place and layout different UI components on each element screen corresponding to each tab of the tab component. Furthermore, at this time, there is no need for complex operations to define the tab of the element screen on which the UI component will be placed; simply select and display the destination element screen when placing the desired UI component 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 placed UI component 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 displayed operation paths 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 within the tab portion, the process proceeds to S431; if it is within the 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 tab component's element screen area to the element screen corresponding to the tab at the position specified by the click in S411. For example, if one of the three tabs displayed as ITEM1, ITEM2, or ITEM3 on the tab component 536 is clicked in S411, the developer terminal 100 displays an operation path for the tab component 536 in S412, and switches the display content of the element screen area 436a to that of the element screen corresponding to the clicked tab. Also, for example, if the display is as shown in FIG. 6(a), the display switches to that shown in FIG. 6(b) when tab 620 is specified. That is, the UI components 611 and 612 located on the element screen displayed before the click are hidden, and instead, the UI component 621 located on the element screen corresponding to the clicked tab 620 is displayed. This control is performed to simplify the operation of defining the element screen of the desired tab when a developer wants to place another UI component on the element screen of a desired tab of the tab component. If a developer wants to place another UI component on the component screen of a desired tab of a tab component, they can simply click the desired tab to display the desired component 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 processing of S409, S410, S413, and S414 has been described using a tab component as an example, but this is not limited to this. The processing of S409, S410, S413, and S414 can be applied to a specific type of UI component other than a tab component, as long as the display content of the UI component changes in response to an operation on the UI component 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 UI components that are not of a specific type, such as tab components, the display content within the UI component is not changed in response to the selection of the UI component on canvas 530. The only processing performed in response to the selection of the UI component is processing related to the display of the operation path, and no other actions are performed. For example, when button 532 is selected on canvas 530 in Figure 5(b), only the operation path is displayed, and the action of button 532 (the processing that is executed when button 532 is pressed in the constructed app) is not executed. Furthermore, 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 Figures 6(c), 6(d), and 6(e), we will explain an example of an AppBar as an example of a type of UI component to which the processes of S409, S410, S413, and S414 can be applied, similar to tab components. Figure 6(c) shows an example in which UI components AppBar 650, TextField 661, and Button 662 are placed on canvas 530. AppBar 650 is a single UI component, and contains element icons 651 and 652. In a constructed application, element icon 651 is a display item that accepts instructions for displaying a drawer menu. In a constructed application, element icon 652 is a display item that accepts instructions for displaying a pop-up menu. When the positions of element icons 651 and 652 of placed AppBar 650 on canvas 530 are clicked, they are controlled in the same way as the tab portion of a tab component. 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 the element icon 651 in the placed AppBar 650 is clicked (Yes in S411), the operation path for the AppBar 650 is displayed (S412), and if a Yes determination is made in S413, a drawer menu is displayed as an element screen (S414). This transitions the display state from FIG. 6(c) to FIG. 6(d). In FIG. 6(d), the operation path 650a for the AppBar 650 is displayed, and the drawer menu 651a, which is the element screen corresponding to the element icon 651, is also displayed. The drawer menu 651a is an area that is displayed by sliding 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 placed in the drawer menu 651a by dragging other UI components from the submenu area 520 and dropping them onto the drawer menu 651a, similar to the processing described in S408 and S410 using the tab component as an example.

配置済みの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 App Bar 650 is clicked (Yes in S411), the operation path for the App Bar 650 is displayed (S412), and if a Yes determination is made in S413, a pop-up menu is displayed as an element screen (S414). This transitions the display state from FIG. 6(c) to FIG. 6(e). In FIG. 6(e), the operation path 650a for the App Bar 650 is displayed, and a pop-up menu 652a, which is an element screen corresponding to the element icon 652, is also 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 components can be placed on the pop-up menu 652a by dragging another UI component from the submenu area 520 and dropping it onto the pop-up menu 652a, similar to the processing described in S408 and S410 using the tab component 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 an operation to drag a placed UI component on the canvas 530 has been performed. If an operation to drag a placed UI component has been performed, the process proceeds to S416; if not, the process proceeds to S417. In S416, the developer terminal 100 changes the position of the dragged UI component (selected component) in response to the drag operation. Specifically, it places the component at the dropped position. 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 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 accordance with the operation on the operation path. When the size is changed, the definition information recorded in memory 102 is also updated to reflect 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 a command to display a context menu (in this embodiment, a right-click of the mouse) has been performed in any area of the canvas 530. If a right-click has been performed, the process proceeds to S420; otherwise, the process proceeds to S421. In S420, a context menu (right-click menu) is displayed according to the position of the mouse cursor at the time of the right-click, and context menu processing is performed to perform processing according to the operation on the context menu. For example, if a right-click is performed while the mouse cursor is over button 532 in FIG. 5(b), a context menu 540 related to button 532 (specified UI component) as shown in FIG. 5(d) is displayed. The context menu 540 displays properties 541, actions 542, and delete 543 as menu options. When properties 541 is selected, a properties box (detailed settings dialog) related to button 532 is displayed, allowing detailed settings to be made, such as the button name (label) to be displayed on button 532, the color of button 532, and the size specified numerically. When action 542 is selected, an action board related to button 532 is displayed, and an action can be entered into the action board in JavaScript, a programming language. The action entered here is the process to be executed when button 532 (specified UI component) is pressed in the constructed application. When delete 543 is selected, button 532 is deleted (removed) from canvas 530. Details of context menu processing will be described later using Figure 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, which is stored in memory 102, to the development environment 300. Upon receiving the definition information, the development environment 300 performs the save process described below in Figure 33(a) or Figure 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 determines that the preview button 505 has been pressed, the process proceeds to S424; otherwise, the process proceeds to S425. In S424, the developer terminal 100 performs preview processing. In the preview processing, the canvas 503 is hidden, and a preview of the UI screen being edited on the canvas 503 is displayed based on the definition information stored in memory 102 or the definition information stored in the development environment 300, so that the UI screen will look the same as when viewed in the built application. The preview does not display the operation paths for operating UI components. 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 component for screen transitions or a link is operated, a screen transition or transition to the link destination is performed. In addition, operations such as moving the selection frame for an item by operating the tab key on the keyboard are also performed. Please note that actions entered by the developer in the action boat and database references will not be performed. As a result, the preview process can be displayed faster than if you 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 was pressed. If the Deploy button 506 was pressed, the process proceeds to S426; if not, the process proceeds to S427. In S426, the developer terminal 100 executes the deployment process. The deployment process will be described later using FIG. 24(a). Note that when the Deploy button 506 is pressed to execute the deployment process, the developer does not need to select the destination execution environment; deployment occurs to the pre-selected execution environment displayed in the Selected Execution Environment box 501. Developers often work to update all the content to be deployed to a specific execution environment at once. For this reason, the system prompts the developer to select the destination execution environment before selecting the application to be updated (S311 in FIG. 3), eliminating the need to select the execution environment each time an application is deployed. This prevents operational errors such as accidentally deploying to an unintended execution environment and improves work efficiency. Furthermore, although authentication processing is performed when logging in to the development environment 300, there is no need to perform separate account authentication processing for the execution environment to be deployed to. This prevents an increase in the amount of work required and allows for efficient work. In other words, the developer terminal 100 does not obtain authentication information related to the execution environment to which the developer is deploying 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 sends it 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. Upon receiving the information identifying the selected execution environment, 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 that 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 processing from S317 onwards is executed based on the changed selected app. In other words, the display contents of the submenu area 520 and 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 an operation to change the UI screen to be edited has been performed. Specifically, it determines whether an operation to change the selected UI screen has been performed on 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 changed content of the 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 an operation to select one 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 processing ends and the process proceeds to the screen switching processing 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 relates to a UI component of the button type. More specifically, it determines whether the type of UI component designated with the mouse when the right-click was accepted in S419 (designated UI component) is a button. If it is a button, the process proceeds to S710; 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 with 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 using Figure 19.

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

S705では、開発者用端末100は、データグリッドのコンテキストメニュー処理を行う。データグリッドのコンテキトメニュー処理については図30を用いて後述する。 In S705, the developer terminal 100 performs context menu processing for the data grid. Context menu processing for the data grid will be described later using Figure 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 superimposes and displays the button context menu shown in FIG. 5(d) 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 Properties (Properties 541 in FIG. 5(d)) has been selected from the options included in the context menu. If Properties 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 component. It then accepts various setting operations for the property box. Here, detailed settings can be made, such as the button name (label) to be displayed on the button (the specified UI component), the button color, and the size (specified numerically). After making the settings and performing an operation to reflect them, the specified UI component is displayed on the canvas 530 in a display format 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. Action board processing will be described later using Figure 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 is performed according to the selected option. 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 to click outside the area where 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 Figure 7 ends. If no operation to close the context menu has been performed, the process 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 superimposes a button context menu for the template screen shown in FIG. 26(d) near the specified position (mouse cursor position) as a context menu for the specified UI component. Unlike the context menu for a normal UI screen (context menu 540 shown in FIG. 5(d)), the template screen context menu (template component 2634 in FIG. 26(d)) does not display options such as Action or Delete, but only Properties. In other words, for UI components placed on a template screen among UI screens, the developer is prevented from setting the action to be taken when the UI component 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 processing 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 to click outside the area where 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 Figure 7 ends. If no operation to close the context menu has been performed, the process 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 processing related to the action board will now be described. When a UI component placed 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 component is displayed. For example, consider the case where a UI screen such as that shown in FIG. 9A is being edited. FIG. 9A is a diagram showing a portion of the UI editor screen on the display 105. In FIG. 9A, a list of UI components is displayed in the submenu area 520, and the UI screen to be edited is displayed on the canvas 900. A UI component 901, which is a button, and other UI components are arranged on the canvas 900. When the UI component 901 is designated and an action option is selected from the context menu, an action board such as that shown in FIG. 9B is displayed.

図9(b)は、UI部品901に関するアクションボードの表示例である。アクションボード910は、キャンバス900が表示されていた領域に、キャンバスに代えて表示される。テンプレート画面に予め配置される雛形部品(雛形コンポーネント)でなければ、開発者が過去に指定UI部品に対してアクションを設定していなければ、アクションボート910は図9(b)のように空白で表示される。なお、アクションボード910に「1」と表示されているのは行数を示すガイド表示であって、アクションの内容ではない。開発者はこのアクションボード910に、操作部106に含まれるキーボードを操作して、プログラム言語であるJavaScriptで任意の文字列を入力することにより、任意のアクションを設定することができる。アクションボードで設定された内容を実行するトリガーは予め定められており、指定UI部品が操作されたことである。従って開発者は、アクションを実行するトリガーが何かというのは設定する必要がない(JavaScriptで記述する必要はない)。例えば、指定UI部品がボタンである場合は、構築後のアプリにおいてそのボタンが押下されたことがトリガーであり、トリガーの発生に応じて、そのボタンのアクションボードに設定したアクションが実行される。 Figure 9(b) is an example of an action board display for UI component 901. Action board 910 is displayed in place of canvas 900 in the area where canvas 900 was displayed. Unless the specified UI component is a template component pre-placed on the template screen, and unless the developer has previously set an action for the specified UI component, action board 910 will be displayed blank, as shown in Figure 9(b). Note that the "1" displayed on action board 910 is a guide indicating the number of lines, and does not represent the action itself. Developers can set any action on this action board 910 by operating the keyboard included in operation unit 106 and entering any string in JavaScript, a programming language. The trigger for executing the content set on the action board is predetermined and occurs when the specified UI component is operated. Therefore, developers do not need to set the trigger for executing the action (there is no need to write it in JavaScript). For example, if the specified UI component 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 component list or UI screen list shown in Figure 9(a) that was 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 the developer (user) by pressing the Add Function button 921 (described below) is referred to as an "original function" (created function, added function, self-made function). If there are no automatically created functions or pre-prepared functions and the developer has not previously created an original function for the specified UI component, the function list 920 will not display function options, and only the option 922 and the Add Function button 921 will be displayed, as shown in Figure 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 (referred to as the Add dialog 930) for adding an original function is displayed. Figure 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 function settings screen 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が未完成の状態であることが識別可能に表示される。 Figure 9 (d) is an example of a REST function setting screen that is displayed when REST is selected in the type selection field 931. In place of the action board 910, a REST function setting screen 940 is displayed to accept various settings required to create a function (REST function) using REST (REpresentational State Transfer). The function list 920 also displays a function 923 with the function name "rest01" entered in the function name input field 932 as a function option. The icon displayed before "rest01" indicates that the type of function 923 is a REST function. If all required setting items are not set on the function setting screen (if information that should be set is missing), an incomplete mark 929 indicating that the function is incomplete is displayed, clearly indicating that the corresponding function 923 is 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 Figure 9(d) displays setting fields 941 to 944. Setting field 941 is a setting screen for the function name. By default, it displays the function name entered in the function name input field 932, but this can be changed based on input from the developer. Setting field 942 is a setting field for setting the variable name for the 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. Setting field 943 is a setting field for setting the type of REST function. By operating the triangle icon on the right side of this area, a pull-down menu appears with options: GET, POST, PUT, and DELETE, and one of these options can be selected and set. The type set here indicates the type of request made by this function. 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, developers do not need to write source code strings in a programming language.

図10(a)~(d)に、更に創作関数の設定画面とアクションボードの表示例を示す。図10において、図9と同じものについては図10と同じ符号を付し、説明を省略する。 Figures 10(a) to (d) show further examples of the creation function setting screen and action board display. In Figure 10, the same elements as in Figure 9 are given the same reference numerals as in Figure 10, and their explanations 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関数を作成する場合には、開発者はプログラム言語でソースコードの文字列を記述する必要はない。 Figure 10(a) shows an example of the SQL function setting screen that appears when SQL is selected in the type selection field 931. Instead of the action board 910, an SQL function setting screen 950 is displayed to accept various settings required to create a function (SQL function) using SQL (Structured Query Language). The function list 920 also displays the function 924 with the function name "sql01" entered in the function name input field 932, along with an incomplete mark 929, as a function option. The icon displayed before "sql01" indicates that the type of function 924 is an SQL function. The setting field 951 is a function name setting screen. Initially, the function name entered in the function name input field 932 is displayed, but this can be changed based on input operations by the developer. The setting field 952 is a setting field for setting variable names for setting arguments. In this embodiment, param is set by 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 entering a string of characters (SQL sentence, SQL statement) that issues instructions to a database in SQL, a type of computer language (a database language, not a programming language). The developer can enter any SQL STATEMENT into the setting field 953 using a keyboard included in the operation unit 106, for example. In this way, when creating an SQL function on the SQL function setting screen 950, the developer does not need to write the source code string 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に記述してしまうミスも防止することができる。 Figure 10(b) shows an example display of the stage when a developer has created functions 923-925, entered (written) some code (character strings) in JavaScript into the action board 910, and then entered "sq." In this embodiment, when a developer user enters a character string, if the entered character string matches the prefix of the function name (identification information) of a previously created created function, the code assist field 911 displays the matching function name as an input candidate option. In the illustrated example, the entered "sq" matches the prefix of the function name "sql01" of function 924, a previously 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 entered into the action board 910, as shown in Figure 10(c), without performing an operation to enter "sql01." This code assist function allows developers (users) to enter the function name (identification information) of a created function without typing all the characters of the function name on the keyboard, thereby reducing the number of steps required. Furthermore, if the function name matches the prefix of a previously created created function, the full name is displayed in the code assist field 911. If there is no match (i.e., if no function begins with that character string), the code assist field 911 is not displayed. This allows developers to confirm that the function name they are entering is correct for a previously created created function, preventing input errors in the function name. If there are multiple previously created functions that match the prefix, multiple options are displayed in the code assist field 911. Furthermore, the function names of created functions displayed in the code assist field 911 are functions created for the specified UI component (UI component 901 in the illustrated example) targeted by the action board 910; created functions created for other UI components are not displayed. This prevents the mistake of accidentally entering the name of a created function created for another UI component on the action board 910, even if that function does not exist as a created function for the specified UI component.

また、図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 Figure 10(c), the function list 920, along with the action board 910, displays the function type (icon before the string) and function name for each of the developer-created functions 923-925. Therefore, while entering (writing) the action code (JavaScript string) into the action board 910, the developer user can check the types and names of the created functions they have created. This reduces the effort required to check and manage valid created functions that can be written into the action board 910 (e.g., the effort required to make a note of them or open another screen to check). It also helps prevent input errors in function names. The functions displayed in the function list 920 are functions created for the specified UI component (UI component 901 in the illustrated example) targeted by the action board 910; created functions created for other UI components are not displayed. This prevents the mistake of accidentally entering a function name of a creation function created for another UI component that does not exist as a creation function for the specified UI component on the action board 910. Furthermore, creation functions are only valid when defining the action of the specified UI component and do not affect the action definitions of other UI components. Therefore, if the function name of a creation function created for a specified UI component is the same as the function name of a creation function created for another UI component, even if that function name is entered on the action board 910, only the function settings set for the specified UI component will be reflected, and the function settings set for the other UI components will not be reflected. Therefore, no error will occur even if the same function name as the function name of a creation function already created for another UI component is used. Therefore, the user can decide on the function name of the creation function and enter it on the action board 910 without worrying about duplicate function names with creation functions already created for other UI components. In other words, many original functions will be created throughout the entire development of an application, but these are automatically managed and organized in association with specified UI components and displayed in the code assist field 911 and function list 920, making it extremely easy for developers to manage a large number of 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 fixes) required when inputting a function name. This reduces the workload and man-hours required for software development (application development), enabling more efficient software (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 an example of the display after action code has been entered in a programming language into the action board 910. In the illustrated example, the portion indicated by the dotted line 960 on the third line uses the original function "rest01" (function 923 in the function list 920). The code string shown on the action board 910 in Figure 10(d) does not define the details of the original function rest01. Furthermore, when the developer configured rest01 on the REST function setting screen 940, the details of rest01 were not defined in the programming language. If definition information including the action definition in this state is uploaded and saved to the development environment 300, the development environment 300, in the saving process of Figure 33(a) or Figure 35(a) described below, creates source code in the 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 settings and the string written on the action board 910. In this way, when the development environment 300 acquires a string containing identification information (function name) of a created function written in a programming language, it performs control to enable the execution of the function (action) indicated by the 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 string entered on the action board 910 in Figure 10(d) and the settings for rest01 configured on the REST function setting screen 940. Note that in the illustrated example, the numbers 1 to 75 written on the left side are used to indicate the line numbers and are not part of the source code. The example in Figure 11 shows 75 lines of source code including a detailed definition of rest01 in a programming language. However, developers do not need to enter all 75 lines themselves. By configuring the REST function setting screen 940 and entering the amount of string (7 lines) shown on the action board 910 in Figure 10(d), the source code content shown in Figure 11 can be defined. In other words, efficient development can be achieved using low code.

図8に、アクションボード処理のフローチャートを示す。この処理は、図7のS715で前述したアクションボード処理の詳細フローチャートであり、図9(b)~(d)、図10(a)~(d)の表示例を用いて説明した動作となるように制御する処理である。 Figure 8 shows a flowchart of the action board processing. This processing is a detailed flowchart of the action board processing described above in S715 of Figure 7, and is a process that controls the operations described using the display examples in Figures 9(b) to (d) and 10(a) to (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 component, 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 component, a screen including an action board 910 with the 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 an operation to describe an action (description operation) has been performed on the action board 910. An operation to describe an action is, for example, a text input operation performed by operating the 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 prefix match, proceed to S805; if not, proceed 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 be a 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 that prefix-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 to describe the action is being performed continuously. If the operation to describe the action is being performed continuously, the process proceeds to S803; 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 adding 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 into 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 input into the addition dialog has been made and the SAVE button 933 has been 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 script. If it is script, the process proceeds to S814; if not, the process proceeds to S815. In S814, the developer terminal 100 displays a script function settings 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; if 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 using Figure 10(a).

S817では、開発者用端末100は、REST関数設定画面を表示し、開発者ユーザーからの設定操作を受け付ける。REST関数設定画面で受け付ける設定内容は図9(d)を用いて前述したとおりである。 In S817, the developer terminal 100 displays the 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 Figure 9 (d).

S818では。開発者用端末100は、それぞれの種別の関数設定画面において、必須項目として予め定められた設定項目への入力が完了したか(設定が完了したか)を判定する。必須項目への入力が完了した場合にはS819に進み、そうでない場合にはS802に進む。 In S818, the developer terminal 100 determines whether input into the setting items predetermined as required items has been completed (whether the settings have been completed) on the function setting screen for each type. If input into the required items has been completed, the process proceeds to S819; 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 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 settings screen corresponding to the type of creation function selected is displayed, reflecting the settings that have already been configured. The user (developer) can change the settings on the settings screen or add settings (i.e., edit the creation function).

S821では、開発者用端末100は、保存の指示操作(例えば保存ボタン915の押下)があったか否かを判定する。保存の指示操作があった場合にはS822に進み、そうでない場合にはS823へ進む。 In S821, the developer terminal 100 determines whether 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 details of the action board processing performed up to this point 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, which is displayed in the function list 920 and 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 settings 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 an operation to close the action board (an operation to end 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 process 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 an 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 App List button 511 has been pressed. If the App List button 511 has been pressed, the process proceeds to S315 in Figure 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 Figure 4 is performed.

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

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

S1206では、開発者用端末100は、設定ボタン514が押下されたか否かを判定する。設定ボタン514が押下された場合にはS1207に進み、そうでない場合はS1209へ進む。 In S1206, the developer terminal 100 determines whether the Settings button 514 has been pressed. If the Settings 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 app settings screen. The app settings screen is a screen that accepts setting operations related to the selected app. In S1208, the developer terminal 100 accepts setting operations on the app settings screen and updates the definition information recorded in memory 102 based on the settings. Settings that can be accepted in S1208 include, for example, a display language setting and a setting for whether to build an app that can be used as a PWA (Progressive Web App). There is also a setting for which UI screen, out of multiple UI screens belonging to the app, is to be designated as the initial UI. The initial UI is the screen that is displayed first when accessing a built app deployed in the execution environment, or the screen that is displayed first after authentication is successful on the app authentication screen after accessing the built app.

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 Figure 3; if not, the process proceeds to S1210.

S1210では、開発者用端末100は、データベースボタン516が押下されたか否かを判定する。データベースボタン516が押下された場合にはS1211に進み、そうでない場合にはS1215へ進む。データべ―スボタン516の押下はデータベースへの接続要求である。 In S1210, the developer terminal 100 determines whether 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; 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, which 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 never 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 (the information registered for the logged-in developer in 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 for 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 the database management screen and displays the database information obtained 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 content updates.

S1215では、開発者用端末100は、ファイルマネージャーボタン517が押下されたか否かを判定する。ファイルマネージャーボタン517が押下された場合にはS1216に進み、そうでない場合にはS1218に進む。 In S1215, the developer terminal 100 determines whether 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にログインできない他のユーザーが不正に実行環境にアクセスすることは出来ず、その分、セキュリティが向上する。 At S1216, the developer terminal 100 displays a file management screen for managing files to be saved in the selected execution environment, and at S1217, accepts operations for managing files to be saved in the selected execution environment. For example, an image file to be displayed on the screen of an application being 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 a save instruction is given, the developer terminal 100 sends the selected file to the development environment 300. When the development environment 300 receives the selected file, it sends it to the developer area of the selected execution environment, thereby saving 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 never accesses the multi-tenant execution environment 410 without going through the development environment 300. As explained in the login process above, developers must authenticate themselves before logging in to the development environment 300. Therefore, by restricting access to various execution environments to via the development environment 300, other users who cannot log in to the development environment 300 cannot access the execution environment illegally, thereby improving security.

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

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

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

S1222では、開発者用端末100は、終了操作が行われたか否かを判定する。終了操作が行われていない場合にはS1201に進んで処理を繰り返し、終了操作があった場合には画面切替処理を終了する。 In S1222, the developer terminal 100 determines whether an end operation has been performed. If an end operation has not been performed, the process proceeds to S1201 and the process is repeated; 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. 14( a) 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 (username) that serves as the developer's account ID (developer ID), a password, a last name, a given 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 assumed to be the account ID of the cloud service. If one developer can access multiple execution environments, the accessible execution environment ID is recorded as a string in which multiple execution environment IDs are listed consecutively, separated by commas. Verify is information indicating whether the account is valid. Note that information recorded in association with one account may be information other than that shown in FIG. 14( a).

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

図14(c2)に示すグループ情報には、図示の各行の通り、複数のグループIDのそれぞれに対して、1人以上の所属ユーザーのユーザーネームが関連付けて記録されている。 The group information shown in Figure 14 (c2) records multiple group IDs in association with the usernames of one or more users who belong to each group, 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 mentioned above.

S130では、開発者用端末100は、開発環境300のユーザー情報取得指示(選択中実行環境のユーザー情報の取得を指示する旨の情報)を送信する。 At S130, the developer terminal 100 sends a user information acquisition instruction for the development environment 300 (information instructing the acquisition of 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 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 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. Figure 15 shows an example of the user information displayed on the developer terminal 100 in S1303. In Figure 15, display items that are the same as those in the display example of Figure 5(b) described above are given the same symbols and will not be described again. Display item 1501 is an instruction item for instructing a display based on the user-specific information shown in Figure 14(c1). Display item 1502 is an instruction item for instructing a display based on the group information shown in Figure 14(c2). Either display item 1501 or 1502 can be selected by switching between them. Furthermore, 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 per-user 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 verification columns in the per-user information shown in FIG. 14(c1), respectively. In the Delete column, a button icon is displayed in each row to accept 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 for a new application user. Save button 1504 is an operation icon for issuing an instruction to save group information 1505, the content of which was edited on the screen of FIG. 15, in the selected execution environment.

S1304では、開発者用端末100は、S1303で表示したユーザー情報の編集操作を受け付ける。例えば、ユーザー追加ボタン1503の押下によるユーザーアカウントの追加や、Deleteの列に表示されたボタンアイコンの押下によるユーザーカウントの削除、キーボードを操作しての編集可能項目に対する内容の編集などである。 In S1304, the developer terminal 100 accepts editing operations for the user information displayed in S1303. For example, adding a user account by pressing the Add User button 1503, deleting a user account by pressing the button icon displayed in the Delete column, or editing the content of editable items 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 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 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 a screen switching operation has not been performed, the process returns to S1304; if a screen switching operation has been performed, the user information display process ends 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 it has received the user information acquisition instruction sent from the developer terminal 100 in S1301. If it has received the user information acquisition instruction, it proceeds to S1312; if not, it 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 obtains access destination information (connection destination information) from the selected execution environment. If the selected execution environment is the multi-tenant execution environment 410 of FIG. 1, the obtained access destination information is access destination information 421. If the selected execution environment is the single-tenant execution environment of FIG. 1, the obtained access destination information is the access destination information for the selected execution environment from among access destination information 456b, 466b, 476b, etc. More specifically, the development environment 300 obtains 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 and stores it in memory 304. Within the selected execution environment, the development environment 300 accesses a file recorded in a specific path (a path that is determined once the execution environment ID is known) and obtains the URL of the access destination stored in that file as access destination information. The specific path consists, for example, of the name of a specific area (folder, bucket, directory) and a specific file name. The name of the specific area is, for example, a "fixed string + execution environment ID." The specified file name is, for example, a predetermined common file name common to all execution environments. In this case, the specified path is "fixed character string + execution environment ID/common file name.json." In other words, once the execution environment ID is known, a specified file (access destination information file) in a specified area that is determined is obtained, and the access destination information is obtained from that file and recorded in memory 304. The URL of the access destination information indicates an address within the execution environment and is the URL to which a request for retrieval or updating of user information stored in the execution environment is made. Unless a request is made to this URL, user information stored in the execution environment cannot be retrieved or updated. Thus, without knowing the execution environment ID, access destination information for retrieving or updating user information cannot be obtained. The execution environment ID is information that can only be obtained by a developer logging in to the development environment 300 after performing authentication processing. Furthermore, a developer who can log in to the development environment 300 can only retrieve the execution environment ID that they 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 sends 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 in 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's worth of information for the currently logged-in developer in the developer information 301 table shown in Figure 14 (a). In other words, it includes information about the email address, password, last name, first name, and accessible execution environment ID. This information is encrypted and converted into a single data string, and the acquired information is used. Even if only this encrypted information is leaked, the email address, password, last name, first name, and accessible execution environment ID will not be leaked because it is encrypted.

S1314では、開発環境300は、選択中実行環境から、S1313で送信したユーザー情報取得要求に応じたユーザー情報を受信したか否かを判定する。このユーザー情報は、後述するS1325またはS1326で実行環境から送信されるものである。ユーザー情報を受信した場合はS1315に進み、そうでない場合にはS1314でユーザー情報の受信を待つ。 In S1314, the development environment 300 determines whether or not it has received user information 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, described below. If user information has been received, it proceeds to S1315; if not, it waits for the reception of user information in S1314.

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

S1316では、開発環境300は、開発者用端末100からユーザー情報更新指示を受信したか否かを判定する。ここで受信するユーザー情報更新指示は、前述したS1306で開発者用端末100から送信されるものである。ユーザー情報更新指示を受信した場合はS1317に進み、そうでない場合は1318に進む。 In S1316, the development environment 300 determines whether 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 in 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 it has received an instruction to change the selected execution environment from the developer terminal 100. This change instruction is sent from the developer terminal 100 in S1308, as described above. If an instruction to change the selected execution environment has been received, it proceeds to S1319; if not, it proceeds to S1311 and repeats the process.

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

図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 of Figure 13(b). Hereinafter, the operator of this processing will be simply referred to as execution environment 400, 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 operator is execution engine 412, and the processor 413 included in execution engine 412 executes a program using memory 414 as work memory. Also, for example, if the selected execution environment is single-tenant execution environment 450, the operator is execution engine 452, and the processor 453 included in execution engine 452 executes a program using memory 454 as work memory.

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

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

S1323では、実行環境400は、アクセス権確認処理の結果がエラーであるか否かを判定する。エラーであった場合には、ユーザー情報取得要求の要求元に自身の環境に保持しているユーザー情報を送信することなく、S1321に進む。エラーでない場合にはS1324へ進む。 In S1323, the execution environment 400 determines whether the result of the access right confirmation process is 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, proceed to S1326; if it is a single-tenant execution environment, proceed to S1325.

S1325では、実行環境400は、自身の実行環境に保持しているユーザー情報を開発環境300に送信する。シングルテナント実行環境であれば、その環境自体のオーナーが単一の開発者であるため、ユーザー情報は単一の開発者がオーナーであるアプリケーションのものしかない。従って後述するS1326のマルチテナント実行環境での処理のように、ユーザー情報のうちログイン開発者がオーナーである一部分を送信するのではなく、全体を送信する。例えば、選択中実行環境がシングルテナント実行環境450であれば、ユーザー情報451を開発環境300に送信する。ここで送信したユーザー情報が、開発環境300にS1314で受信され、S1315で開発者用端末100に送信される。 At S1325, the execution environment 400 sends the user information held in its own execution environment to the development environment 300. In a single-tenant execution environment, the environment itself is owned by a single developer, and therefore the user information only relates to applications owned by that single developer. Therefore, unlike the processing in a multi-tenant execution environment at S1326 described below, the entire user information is sent, rather than just the 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 sent to the development environment 300. The user information sent here is received by the development environment 300 at S1314 and sent 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に送信される。 At S1326, the execution environment 400 transmits to the development environment 300 the 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 at S1341 (described below), decoded (decrypted) at S1343, and stored in memory 414. This is the received developer information. Of the user information 411 in the multi-tenant execution environment 410 shown in FIG. 14(b), information for rows that have 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. Of the user information 411 in the multi-tenant execution environment 410, information for rows that do not have 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 a multi-tenant execution environment, user information owned by multiple developers is recorded mixed together, so the 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 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)を用いて後述する。 At S1328, the execution environment 400 performs access right verification processing. This processing is performed to determine whether the sender of the user information update request is a developer with legitimate access rights. This processing reduces the possibility of user information being rewritten (updated) by a request from someone other than a developer with legitimate access rights, thereby improving security. The access right verification processing will be described later using Figure 13(d).

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

S1330では、実行環境400は、ユーザー情報更新要求に従って自信の環境に記憶しているユーザー情報を更新する。この際、新規にユーザーを登録する場合は、マルチテナント実行環境であればログイン開発者の開発者IDがオーナーIDとして新規ユーザーのアカウント情報に関連付けて登録される。 At 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, if a new user is registered, 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 encrypted developer information has been received from the development environment 300. The developer information received here is the developer information 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 occurred as a result of the access right verification process. In this case, an error is determined in S1323 or S1329 described above. In this way, even if a user information acquisition request or user information update request is received, if encrypted developer information is not received, an error is treated as an error and request control is performed such that processing in response to the request is not performed (the request is not permitted). This makes it possible to suppress processing in response to unauthorized access.

S1343では、実行環境400は、S1341で受信した開発者情報を、予め保持している復号化キーを用いてデコード(暗号化解除、復号化)する。復号化された開発者情報は、実行環境から外に送信されることはないので、漏洩する可能性は低い。 In S1343, the execution environment 400 decodes (decrypts, decrypts) the developer information received in S1341 using a decryption key stored in advance. The decrypted developer information is not sent outside the execution environment, so there is little chance 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 portion of the developer information decoded in S1342 that indicates accessible execution environments. If it is included, the processing is terminated (in this case, the access is deemed legitimate); if it is not included, the processing proceeds to S1342, where an error is recorded (output) as a result of the access rights confirmation processing. 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 is controlled so that even if a user information acquisition request or user information update request is received from a source other than the development environment 300, no processing is performed in response to the request. This prevents processing even if a forged developer information and user information acquisition request or user information update request are sent and encrypted by a device other than the development environment 300. 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 leaks, and improve security. Note that while the above-described user information display process describes processing related to user information stored in the execution environment, it 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 can be applied to the processing related to displaying and updating a database described in S1210 to S1214 of Figure 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, as in S1312. The access destination information file records a DB operation request reception URL, which is the request destination for receiving DB operation requests, and the execution environment 400 sends the DB operation request and developer information to this URL, as in S1313. The execution environment 400 performs processing to determine whether the sender of the DB operation request is legitimate, as in the processing described in Figures 13(c) and 13(d), and only if the sender is legitimate performs processing related 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)で説明した処理と同様に、ファイル管理要求の送信元が正当かどうかを判定する処理を行い、正当な場合にのみ、ファイル管理要求に応じて自身の実行環境に保持したファイルに関する処理を行う。 The present invention can also be applied to the file management processing described in S1215 to S1217 of Figure 12, for example. 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, as in S1312. The access destination information file records a file management request reception URL, which is the request destination for receiving file management requests, and the execution environment 400 sends the file management request and developer information to that URL, as in S1313. The execution environment 400 performs processing to determine whether the sender of the file management request is legitimate, as in the processing described in Figures 13(c) and 13(d), and only if the sender is legitimate performs processing related to the files stored 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. 12. This process is executed by the developer terminal 100.

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. 17(a) shows an example of the WF creation screen. A node list 1710 is displayed in the submenu area 510. The node list 1710 includes node options: Start 1711, which is the starting point; End 1712, which is the end point; and Status 1713, which is the intermediate point. 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, placement is performed by drag-and-drop. 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 into 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 node placement operation.

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 the origin of the arrow to the node beyond. When a placed node is selected, an operation path is displayed for the selected node. An arrow can be drawn by starting a drag with the mouse cursor on that operation path (i.e., pressing the left mouse button and starting to move the mouse) and dropping it on another node (i.e., releasing the left mouse button). The node from which the drag was started becomes the origin of the arrow, and the node where it was 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 to draw 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 the arrow from node 1701 to node 1702. Arrow 1707 is the arrow from node 1702 to node 1703. Arrow 1708 is the arrow from node 1703 to node 1704. Arrow 1709 is the arrow from node 1704 to node 1705. Each node represents one procedure (step) in a workflow that includes multiple procedures (steps), and the arrows indicate the order of the procedures. In other words, in the example shown, nodes 1701 to 1705 represent the first to fifth steps, respectively.

S1606では、開発者用端末100は、ノードのプロパティを設定する操作があったか否かを判定する。具体的には、WF配置領域1700に配置済みのノードを選択して右クリックをする操作があったか否かを判定する。ノードのプロパティを設定する操作があった場合にはS1607に進み、そうでない場合にはS1608に進む。 In S1606, the developer terminal 100 determines whether an operation to set node properties has been performed. Specifically, it determines whether an operation to select a node already placed in the WF placement area 1700 and right-click has been performed. If an operation to set node properties 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 to set the node properties. Figure 17(c) shows an example of the display of a node property box. 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. To set the UI screen ID, a list of UI screen IDs is displayed as a choice, and the user can select and set it from that choice.

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 already 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 settings for the operation property, which is a property of the arrow, are accepted. Figure 17(e) shows an example of the display of an arrow property box. The arrow property box accepts the arrow's ID (a default value that does not overlap with other arrows is set and can be changed), label (the 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), or return (Remand). The user can set it by selecting one of the options corresponding to SelectUser and CurrentUser. The type indicates the type of action to be taken when transitioning from the original procedure of the arrow to the subsequent procedure. Based on this type, the action of the automatically placed UI component, described below, is automatically set.

S1610では、開発者用端末100は、ワークフロー生成ボタン1730が押下されたか否かを判定する。ワークフロー生成ボタン1730が押下された場合はS1611に進み、そうでない場合はS1615に進む。 In S1610, the developer terminal 100 determines whether the Create Workflow button 1730 has been pressed. If the Create Workflow 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 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 UI screen ID, a list of UI screen IDs is displayed as a choice, and the user can select from that choice.

S1613では、開発者用端末100は、図17(g)に示す指定受付フォーム(ダイアログボックス)をウィザードとして表示し、データベースの指定(選択)を受け付ける。データベースの指定は、表示された選択肢から選択することで指定することができる。 In S1613, the developer terminal 100 displays the specification acceptance form (dialog box) shown in FIG. 17(g) as a wizard and accepts the specification (selection) of a database. The database can be specified by selecting it 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 respective properties, and the settings made by selecting from the options in S1611 to S1614, and records the definition information in memory 102. This automatically places UI parts (UI components) based on the workflow on the UI screen. Actions corresponding to the workflow are automatically set for these automatically placed UI parts. In this way, UI parts with automatically defined actions are generated based on the workflow created by the developer user's operation of selecting options, without the developer user having to write them in a programming language. Additionally, tables used in the workflow are created in the database specified in the specification acceptance form shown in FIG. 17(g). Actions are also set (defined) on the canvas of the UI screen according to the settings. The actions set on the canvas are the processing performed when the UI screen is loaded in the constructed application. In other words, they are the processing performed as the 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 occurred. 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 processing of FIG. 16 ends, and the processing proceeds to the screen switching processing described above in FIG. 12. If not, the processing 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 the database tables added in S1614 of Figure 16 are displayed by pressing the database button 516 in the main menu area. That is, Figure 18(a) is one of the database-related screens displayed in S1214 of Figure 12. Of the table list displayed in the submenu area, tables 1801 and 1802 are tables that were automatically added in response to the creation of the workflow. They have been added (created) as tables included (subordinate, lower-level) in the database whose designation 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 components were automatically placed in S1614 of Figure 16. UI components 1811-1813 placed on canvas 530 are UI components that were automatically placed in response to the generation of the workflow. In other words, UI components 1811-1813 were not placed by the developer using drag-and-drop from the UI component list in the submenu area. An action has been automatically set (defined) in UI component 1813. UI component 1813 is an automatically generated component for which an action to be taken when transitioning to the next step in the workflow is defined. Furthermore, the UI screen on which UI component 1813 is placed is the source screen for transitioning to the next step in the workflow by executing the action automatically defined in UI component 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 an action board displayed when a button UI component 1813 is set as the specified UI component. That is, this action board is displayed in step S801 described above in Figure 8 when the specified UI component is UI component 1813. The action board 910 displays the action string, as shown in Figure 18(c), written in a programming language as the default, even when the developer has not yet written the action in a programming language. In other words, the action board 910 displays the source code in a programming language that defines the action, as shown in Figure 18(c), as the default, even when the developer has not yet written the source code for the action in a programming language. The action displayed in the action board 910 in Figure 18(c) defines at least a database (line 3) and the UI screen to be displayed next (line 6), based on the operations received from the user during the workflow creation process in Figure 16. The user can edit these automatically defined actions using the processes in steps S802 to S808 described above. In other words, you can use the string of an automatically defined action as a base, partially reuse it, and enter programming language to modify or add text. In other words, you can accept modifications to the string of an automatically defined action. In this way, by using the programming language of an automatically generated and displayed action as a base, you can easily set up an action with fewer steps (amount of text input) than if a developer were to write the action in a programming language from scratch. Furthermore, because you can customize an automatically generated action by making modifications rather than using it as is, you can create actions that meet more specific 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 actions have been automatically set in response to the creation of a workflow. This action board is displayed when a blank area on the canvas is designated and a context menu is executed to display the action board. It is displayed in S1903 of Figure 19, which will be described later. The action board displays the action string, as shown in Figure 18(d), written in a programming language as the default, even when the developer has not yet written the action in a programming language. In other words, the action board displays the source code in the programming language that defines the action, as shown in Figure 18(d), as the default, even when the developer has not yet written the source code for the action in a programming language. The user can edit these automatically defined actions using the processing in S1904, which will be described later. In other words, similar to the actions automatically set in UI components described in Figure 18(c), actions can be easily set with minimal operation (text input), and actions that meet more specific user needs can be generated.

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

このように、本実施形態によれば、ワークフローの基本的な部分はワークフロー作成画面での操作とウィザードへの入力内容に沿って(すなわちプログラミング言語でソースコードを記述する操作を含まず、選択肢から選択する操作を含む操作群に基づいて)、簡単な操作で素早く作成することができる。なおかつ、自動的に作成されたUI部品やUI画面のキャンバスに設定されたアクションをプログラミング言語で修正可能に提示することで、より自由度の高い設計が可能となる。 As such, 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 content 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 way that can be modified in a programming language, a greater degree of design freedom is possible.

<CRUD生成処理>
図19に、キャンバスのコンテキストメニュー処理のフローチャートを示す。この処理は、前述した図7のS703の詳細フローチャートである。この処理は開発者用端末100が実行する。キャンバスのコンテキストメニューには、CRUDを生成するための選択肢が含まれる。
<CRUD generation process>
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 options 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 CRUD generation, we will explain a case where a canvas of a selected UI screen, such as that shown in Figure 20(a), is displayed before CRUD generation (before CRUD buttons are placed), and a blank area of the canvas is right-clicked to display the canvas context menu. CRUD is an abbreviation of the four basic functions required of software: data creation (Create), data read (Read), data update (Update), and data deletion (Delete). The canvas in Figure 20(a) displays UI components 2001-2003 placed by a developer during UI editor processing. All of UI components 2001-2003 are Input-type UI components. UI component 2001 displays "ID" as the label, UI component 2002 displays "Name" as the initial value, and UI component 2003 displays "age" as the label. That is, the canvas in Figure 20(a) is a canvas for a UI screen designed to be used for some kind of user registration. UI part 2001 is an input field for entering the ID of the newly registered user, UI part 2002 is the name of the newly registered user, and UI part 2003 is the age of the newly registered user. 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. Figure 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 the menu item (option 2013) in the canvas context menu that instructs the display of the action board has been pressed. If the menu item (option 2013) instructs the display of the action board has been pressed, the process proceeds to S1903; if not, 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 memory 102. An example of the canvas action board display is shown in Figure 18(d) above. Figure 18(d) is an example in which an action has been automatically set. If no action has been set, the action board will be displayed blank. If a developer has previously input (set) an action into the action board and the content of that input is recorded in the definition information, a character string in a programming language indicating the set action will be 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 (edit acceptance). This process is similar to the processes in S802 to S823 in Figure 8 described above, so details will be omitted.

S1905では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS1904に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、図19の処理を終了して、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S1905, the developer terminal 100 determines whether an operation to close the action board (an operation to end 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 process is repeated. If an operation to close the action board has been performed, the action board is hidden, the process of Figure 19 is terminated, the display switches 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 the 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, proceed to S1907; if not, proceed 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 component in the CRUD from which data is to be acquired. Figure 20(c) shows an example of the display of CRUD input form 1. Area 2021 displays the UI component IDs of all UI components placed on the selected UI screen as options. The user (developer) selects the option from which data is to be acquired from the options displayed in area 2021 and displays it in the selected area 2022 to make the selection.

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 will be the target of the CRUD. Figure 20(d) shows an example of the display of CRUD input form 2. Area 2031 displays the UI component IDs of the UI components selected in input form 1 as options. The user (developer) selects the option they want to use as the target column for the CRUD from the options displayed in area 2031 and displays it in the selected area 2032 to make the selection.

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 on 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 used by the CRUD. Figure 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 table name.

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 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 content entered in input forms 1 to 3 (selected content) 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 for the selected app. It also automatically generates a database table for the content 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 any of the other menu items (options 2011, 2012, or 2014) in the canvas context menu has been pressed. If any of the other menu items 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 according to the pressed menu item.

S1916では、開発者用端末100は、キャンバスのコンテキストメニューを閉じる操作(例えば、コンテキストメニューが表示された領域外をクリックする操作)があったか否かを判定する。コンテキストメニューを閉じる操作があった場合には、S1917でコンテキストメニューを非表示とし、図19の処理を終了する。閉じる操作がない場合にはS1902に戻る。 In S1916, the developer terminal 100 determines whether an operation to close the canvas context menu has been performed (for example, an operation to click outside the area where 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 the context menu 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 placed 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 assigned 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 UI components 2051-2053, which are CRUD buttons. The action of UI component 2051, which is a CRUD button, is to save (update or add) the value entered in the UI component selected in Input Form 1 to the database table set in Input Form 3 in response to pressing UI component 2051, and then transition to the screen Next UI. The action of UI part 2052, which is a CRUD button, is to delete data from the database table set in input form 3 that has the value entered in the UI part selected in input form 1 in response to pressing of UI part 2052, and then transition the screen to Next UI. The action of UI part 2053, which is a CRUD button, is to retrieve data from the database table selected in input form 3 that matches the value entered in the UI part selected in input form 1 in response to pressing of UI part 2052, and transition the screen to Next UI 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) automatically generated by processing S1913. Figure 20(g) is an example of a canvas display for a UI screen different from that shown in Figure 20(a), in which a data grid 2061, a UI component, is placed. 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, a button, is automatically placed. Canvas actions are also automatically set on this UI screen (crud-newui-UI01). The automatically set canvas action is an action that controls the display of data from 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 automatically set action 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 below). For example, you can change the grid's decoration or change the label displayed as a column name from "text_field_Name" to "Name." It's also possible to modify the grid so that some columns aren't displayed. After deploying an application and starting operation, you may need to add or remove columns for various reasons (such as changes in regulations or operational methods). For example, you may want to hide the "number_field_age" column in the data grid 2061 in the future. In this case, you can simply delete the column you want to remove from the column properties in the UI editor. This eliminates the need to re-enter and re-generate CRUD input forms 1 to 3. In this way, being able to edit UI components and screens automatically generated based on input into the CRUD input forms (fizzards) allows you to easily and flexibly accommodate future changes to the application's operation with minimal effort.

図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 displayed when the database button 516 in the main menu area is pressed. That is, Figure 21(a) is one of the database-related screens 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 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 component ID of the UI component selected in Input Form 2. For these columns, properties such as data type are also automatically set according to the properties of the UI component 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の処理によって編集可能である。すなわち、自動的に定義されたアクションの文字列をベースとして、これを一部流用し、一部改変または文字列を追加するようにプログラミング言語を入力することができる。すなわち、自動的に定義されたアクションの文字列に対する修正操作を受け付けることができる。このように、自動的に生成されて表示されたアクションのプログラミング言語をベースとすることで、開発者がゼロからプログラミング言語でアクションを記述するよりも、少ない操作手数(テキスト入力量)で簡単にアクションを設定することができる。また、自動的に生成されたアクションをそのまま使うことなく修正を加えてカスタマイズできるため、より細かい要望に応えるアクションを生成可能である。 Figure 21(b) shows an example of a display when an action board for UI component 2051, a CRUD button automatically placed in the processing of S1913 in Figure 19, is displayed. That is, this action board is displayed in S801 described above in Figure 8 when the specified UI component is UI component 2051. The action board 910 displays the action string as shown in Figure 21(b) written in a programming language (JavaScript) as the default, even when the developer has not yet 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 21(b) as the default, even when the developer has not yet written the source code for the action in a programming language. The user can edit such automatically defined actions using the processing of S802 to S808 described above. That is, the user can use the automatically defined action string as a base, partially reuse it, and input programming language to modify or add text. That is, modifications to the automatically defined action string can be accepted. 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 actions in a programming language from scratch. Furthermore, because automatically generated actions can be modified and customized rather than used 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 Figure 21 (b), function list 920 in the submenu area displays functions 2121 and 2122 as options for pre-prepared functions. Functions 2121 and 2122 are functions automatically generated in the processing of S1913 in Figure 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 the display when function 2121 is selected from function list 920 and the function settings screen is displayed. Function 2121 is an SQL function, and the SQL function settings screen is displayed. Since the SQL function settings screen has the same configuration as that described above in Figure 10(a), in Figure 21(c) the same setting/input fields as in Figure 10(a) are assigned the same symbols and their descriptions are omitted. In setting field 951, "SQL_Save" is automatically set as the function name. In addition, in setting field 953, an SQL statement has been pre-entered. In this SQL statement, the character string "INSERT INTO" indicates that the database processing type is "INSERT" and that this is a process to add a new row to a 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 in Input Form 3. The subsequent strings indicate the column values included in the row to be added, and reflect the content entered in Input Form 1. The content of setting fields 951 and 953 is based on what was automatically generated, and can be edited (corrected, deleted, added to, customized) by the developer using the processes in S813 to S820 in Figure 8 described above.

図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 the display when function 2122 is selected from function list 920 and the function settings screen is displayed. Function 2122 is an SQL function, and the SQL function settings screen is displayed. Since the SQL function settings screen has the same configuration as that described above in Figure 10(a), in Figure 21(d), the same setting/input fields as in Figure 10(a) are assigned the same symbols and their descriptions are omitted. In setting field 951, "SQL_Update" is automatically set as the function name. In addition, in setting field 953, an SQL statement has been pre-entered. In this SQL statement, the character string "UPDATE" indicates that the database processing type is "UPDATE" and that the processing is to update the values of existing rows 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 in Input Form 3. The subsequent string indicates the value of the column to be updated, and reflects the content entered in Input Form 1. The content of setting fields 951 and 953 is based on what was automatically generated, and can be edited (corrected, deleted, added to, customized) by the developer using the processes in S813 to S820 in Figure 8 described above.

図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 following describes in detail the content of the automatically generated actions shown in the action board 910 in Fig. 21(b). Each line of the JavaScript character string written in the action board 910 in Fig. 21(b) has the following meaning.
Line 1: Defines a set of values containing the values in lines 2 to 5 under the variable name params.
Line 2: Defines the ID number. It will be a serial number.
Lines 3 to 5: Obtain the value entered in the UI component selected in Input Form 1. Note that "$ui.UI component ID.Type of target information" is written to the right of "=" to indicate that a value is to be obtained, but this notation method itself is not a standard JavaScript notation method, but is unique to this system. More details on this will be provided later.
Line 6: Executes the function SQLUpdate using the params defined in lines 2 to 5 as arguments. In other words, it updates the database table set in Input Form 3 with the values entered in the UI components 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 the UI screen with the UI screen ID "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 corresponding to the params retrieved this time, so a new row will be added and registered.
Line 13: If line 12 is true, execute the function SQLSave with the params defined on lines 2 to 5 as arguments. That is, add a row to the database table set in input form 3 using the values entered in the UI components selected in input form 1 and save the row as a new row.
Line 14: Obtain the lines affected by the new save on 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 row was successfully added and registered.
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 and 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 that is automatically generated in this way and presented on the action board in a programming language so that the developer (user) can modify it can be customized by the developer (user), for example, as follows:
・Since we want to change the message content (the message that is displayed when the 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 part of NextUI on lines 10 and 17 (crud-newui-UI01).
- Delete line 5 because you want to change the operation so that age is not registered. In other words, change the component that obtains and/or outputs information when the action is executed.
- Because you want to register it in multiple databases, create (add) a new SQL function (original function) and add it. 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 significantly reduce the amount of work required, rather than creating the desired CRUD button action from scratch with no action description in a programming language. Furthermore, because customization is free, there is also a great deal 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 more flexibly modified and used.

<開発者アカウント登録処理>
図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, last name, and 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, the developer 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 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 the development environment 300 to resend the one-time password.

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 works in conjunction with the developer account registration process on 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 that 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 that account information from the developer terminal 100, it proceeds to S2222; otherwise, 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 "Verify" column in this row is recorded as "unconfirmed." The columns in the developer information 301 are those shown in Figure 14(a). One row in the developer information 301 represents 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 the 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 in this embodiment, the external one-time password issuing system is instructed to send the one-time password, but the development environment 300 itself may also send the one-time password.

S2224では、開発環境300は、開発者用端末100からワンタイムパスワードを受信したか否かを判定する。ここで受信するワンタイムパスワードは、図22(a)のS2204で開発者用端末100から送信されたものである。ワンタイムパスワードを受信した場合にはS2225に進み、そうでない場合にはS2224で待機する。 In S2224, the development environment 300 determines whether 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 in 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 an instruction to confirm whether it matches the issued one-time password. In other words, it instructs the system to verify the one-time password.

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

S2227では、開発環境300は、開発者用端末100から、ワンタイムパスワードの再送要求を受信したか否かを判定する。ここで受信する要求は、図22(a)のS2208で開発者用端末100から送信されたものである。ワンタイムパスワードの再送要求を受信した場合はS2223へ進み、そうでない場合はS2227で待機する。 In S2227, the development environment 300 determines whether 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" set to "confirmed" has its registered email address confirmed to be valid by matching the one-time password, and 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 also 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 for which the "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; 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 multi-tenant execution environment 410. If a DB instance has been added, proceed to S2232; if not, proceed 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 multi-tenant execution environment 410. Adding (creating) a new DB instance takes several tens of minutes of processing time, so preparations are made in advance when the number of active accounts exceeds threshold 1 (> threshold 2), described below, before changing the connected DB instance. By doing this, 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 for which the "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; 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 multi-tenant 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 memory 304 as the DB instance name of the multi-tenant 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 for a database environment. As a result, for example, while "DB instance name 1" was assigned to accounts added previously, "DB instance name 2" is assigned to accounts added thereafter. As the number of accounts connecting to a single DB instance (database environment) increases, the number of simultaneous database accesses increases, which can lead to performance degradation such as slower response times when accesses are concentrated. In contrast, if the number of accounts exceeds threshold 1, accounts registered thereafter are configured to connect to a new DB instance (database environment) different from the previous one. This reduces the possibility of access concentration due to an excessive number of developers using a single DB instance. This reduces the possibility of performance degradation such as slower response times when accessing the database.

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. It also updates threshold 2 to threshold 2 + threshold 1. As a result, for example, 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 accounts increases by 10,000 (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 is recorded as the destination DB instance in the column indicating the destination DB instance name (the rightmost column in Figure 14(a)) of the row of the currently added account in the developer information 301. By the processing described in S2232 to S2235, for example, if threshold 1 is developer device 10000 and the currently added account is the 9999th valid account, "DB instance name 1" is recorded. If the currently added account is the first valid account on developer device 1000, "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 the multi-tenant execution environment 410. DB set 430 initially has a fixed number of DB environments (DB instances), which can 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 a 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 developer A's DB 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 separate DB instances. Each inventor's DB further contains one or more tables. For example, DB1 (2314) contains multiple tables, such as Table 1, Table 2, and so on. 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, if DB instance 1 has already created up to DBmax (2317) and another valid developer account is registered in developer information 301, S2232 returns Yes, and the newly registered developer is registered in developer information 301 so that he or she connects to DB instance 2 (2320). DBs for accounts (developers) added thereafter are then 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 thereafter are similarly controlled to connect to the next DB instance.

図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)で説明したように、登録されるアカウント情報に関連付けて、接続先となるシングルテナント実行環境のデータベース環境を決定する制御は、開発者の新規アカウントの登録(追加)の際には行わない。 Figure 23(b) shows details of DB set 457 in a single-tenant execution environment. Because a single-tenant execution environment is dedicated to one account (one developer), DB set 457 is also dedicated to one account (one developer). Therefore, there is little chance of an increase in DBs or concentrated access to the extent that response is degraded. Therefore, DB set 457 has only one DB environment, DB instance 1 (2350). Furthermore, developer information DB 2351 records only information for one account statement (for example, DB information 2352 for developer A). There is no upper threshold for the number of DBs that can be stored. Furthermore, as explained in Figure 22(b), the control that determines the database environment of the single-tenant execution environment to be connected to in association with the registered account information 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 sends information to the development environment 300 instructing the development environment 300 to deploy the selected app. Note that before issuing the deployment instruction, a save process may be performed to save 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は、処理待ち画面を表示する。処理待ち画面では、デプロイの処理中であることを示すガイド情報が表示される。 At 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; if not, 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 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 app. 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; if 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 of the deployed app (the URL for accessing the execution environment) 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 receiving the deployment instruction. 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 by operating the new tab, the display content and operation of the actual deployed app (built in the execution environment) can be immediately confirmed and verified. The processing of S2407 accesses the URL of the deployed app (the URL for accessing the execution environment) and executes the app. Details of the app execution processing will be explained using the flowcharts of Figure 33(c) or Figure 35(c).

S2408では、開発者用端末100は、成功通知に含まれるアプリのURLをQRコード化する処理を行う。すなわち、アプリのURLの情報を含むQRコード(2次元コード)を生成する。 In S2408, the developer terminal 100 performs a process to convert the app URL 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 app's URL.

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 when deployment is completed (successful), allowing the developer to recognize when deployment was successful. 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 shown in Figure 25(a), a deployment instruction is issued, and 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. Note that the app URL 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 the 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自体を文字列で表示するようにしてもよい。 By scanning the QR code 2511 displayed on the display 105 of the developer terminal 100 with a smartphone (mobile terminal), the developer (user) can access the deployed app's URL (the URL for accessing the execution environment) on the smartphone. This allows the developer (user) to easily access the deployed URL with minimal effort. In this case, the smartphone functions as the app user terminal 201. The deployed app's authentication screen or initial UI is displayed on the smartphone, allowing the user to immediately confirm and verify the display and operation of the deployed app (built in the execution environment) by operating the smartphone. Because the operation of a mobile app can be confirmed and verified on a mobile terminal rather than the developer terminal 100, it is easier to confirm whether the app is suitable for use as a mobile app than by verifying 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 app's URL included in the success notification can be read. For example, a barcode, Chameleon Code (registered trademark), etc. may be used. Furthermore, the URL of the app included in the success notification may be displayed as a 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 starts 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 app to be deployed from the app 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 the UI definition information (uiDef.json) described below and the execution environment program (JavaScript).

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 multi-tenant execution environment 410. More specifically, the development environment 300 sends the definition information of the selected app acquired in S2421 to the multi-tenant execution environment 410 and instructs the multi-tenant execution environment 410 to record it in the developer area of the logged-in developer (folder for each 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 sends the definition information of the selected app acquired in S2421 to the single-tenant execution environment, which is the currently selected execution environment, and instructs the multi-tenant execution environment 410 to 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 failed. If the deployment failed, the process proceeds to S2426; if not, the process proceeds to S2427. The deployment may fail if the definition information cannot be sent or recorded in the execution environment due to a communication failure or other reason.

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 about the URL of the deployed app (information about the access destination for accessing the app deployed in 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 following describes UI screen templates. In addition to UI screens created by the user, there are also UI screens (template screens) that are prepared in advance as templates. A template screen is a screen in which at least one template component with a predefined action is placed in a predetermined position, even if the user has not previously placed UI components on the UI screen. The template screen can be customized using predefined information. More specifically, the template screen can be displayed on a canvas in the UI editor, and can be edited using 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 the display of template screen options when a list of UI screens is displayed as options in the submenu area 520. This display is performed by the processing of S401 in Figure 4 described above. Figure 26(a) shows an example of an expanded display of a list of UI screen options classified into the Authentication UI (UI screen for authentication, authentication screen) group, out of the 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 the submenu area 520. Options 2611 to 2622 are each options for one UI screen, and all 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 an example of a display 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 selection 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) using drag-and-drop from the UI component list in submenu area 520, but are template UI components whose display position (arrangement), color, size, and display content 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, which is the user name (user ID) of the application. In other words, a UI component for receiving input of user-specific information.
Template component 2633: A UI component of a button, which is set (labeled) to display "CREATE ACCOUNT?". When pressed, an action is set (predefined) to transition to a "Sign Up form" screen, which is a type of template screen (the UI screen shown in FIG. 27(c) and corresponds to option 2614).
Template component 2634: A UI component in the form of a button, which is set (labeled) to display "NEXT." When pressed, a predetermined action is set (predefined) to acquire the value (email address) input to template component 2632 and transition to a "Sign in Password" screen, which is a type of template screen (the UI screen corresponding to option 2612 in the screen shown in FIG. 27( a)).

図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 the canvas portion when a template screen is displayed on the canvas. Template components 2711 to 2715 placed on the "Sign in Password" screen are UI components as follows:
Template component 2711: A UI component of the Input type TextField for receiving input of the application user password.
Template component 2712: A UI component in the form of a button that is set to display "Forget Password?" When pressed, a predetermined action is set (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 EMAILS," and when pressed, an action of returning to the "Sign in ID" screen is predetermined (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 in 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 the 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 mark is selected. The execution environment verifies whether the received email address and password combination is correct, and checks whether it matches the user information 411 of the multi-tenant execution environment (shown in FIG. 14(b)) or the user-specific information of the single-tenant execution environment (shown in FIG. 14(c1)). If the verification results in authentication being successful, the user logs in to 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.
27(b): UI screen corresponding to option 2613.
27(c): UI screen corresponding to option 2614.
27(d): UI screen corresponding to option 2615.
27(e): UI screen corresponding to option 2616.
27(f): UI screen corresponding to option 2617.
27(g): UI screen corresponding to option 2618.
27(h): UI screen corresponding to option 2619.
27(i): UI screen corresponding to option 2620.
27(j): UI screen corresponding to option 2621.
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 template screens described above can be customized, and as explained in the process from S405 onward in Figure 4, developers can edit them using a UI editor. Edits include adding UI components other than template components, changing the template component's placement and display size, and changing template component properties (changing the display format, such as the displayed text and color). Actions on the template screen's canvas can also be set and changed. However, template component actions cannot be changed or deleted, and template components cannot be erased. Furthermore, actions cannot be changed or deleted for regular UI components (UI components that are not template components) added to the template screen. This prevents unintended errors that could result from modifying actions required for authentication processing using cloud services, which could cause authentication processing to malfunction. In other words, the actions required for error-free authentication are predefined in the template components and cannot be modified, ensuring reliable authentication processing using cloud services, even if a developer customizes the template screen. The reason why actions cannot be set for normal UI components added to template screens is to prevent the setting of actions that would cause authentication to not work properly. For example, if a new button is added to the "Sign in ID" template screen in Figure 26 (b) and an action is set for that button that transitions to a UI screen unrelated to authentication, the email address and password required for authentication cannot be sent to the runtime 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. This type of problem can be prevented by not allowing actions to be set for normal UI components added to template screens.

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

図26(d)に、テンプレート画面のキャンバスに配置されたボタン2634のコンテキストメニュー2635を表示した表示例を示す。このように、テンプレート画面に配置された雛形部品のコンテキストメニューにはアクション、消去の選択肢が表示されない。これによって、アクションの設定、雛形部品の消去ができないように制御している。すなわちアクションボードも表示されない。従って、図7のS721~S724で説明した通り、雛形部品についてはプロパティの編集(表示形態の変更)のみが行える。 Figure 26 (d) shows an example of a display showing the context menu 2635 of a button 2634 placed on the canvas of a template screen. As such, 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 format 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 an example of the display after editing (customizing) the canvas of the template screen shown in Figure 26(b). The same UI components are designated by the same reference numerals in Figures 26(b) and 26(e). UI component 2641 is an output-type UI component added by the developer and displays the image file uploaded using the file management operation in S1217 of Figure 12. Using an icon or image representing the app makes it easier for the user to identify which app this authentication screen is for. UI component 2642 is a text message-type UI component added by the developer. The developer also opened the canvas's action board and set an action for this screen's canvas: obtain the current date, and if it is the end of the month, display the text "This is the end of the month, so don't forget to apply." In this way, it is possible to place UI components (components) whose display content changes depending on the conditions for displaying this authentication screen. Template component 2631 is the same UI component (UI component with the same ID) as template component 2631 in Figure 25(b), but the content (label) to be displayed can be changed by the developer's property editing operation, and "Login" is displayed. In this way, there is a high degree of freedom in screen design for actions other than those required for authentication. Therefore, for example, it is possible to create a screen that allows app users to easily recognize which app's authentication screen (login screen) it is for, to design it in accordance with an internal standard design agreed upon within the company, or to create a screen with a design that is more suitable for the nature of the app.

<プロパティボックスの表示例>
キャンバスに配置されたUI部品のコンテキストメニューからプロパティを選んで表示されるプロパティボックスについて説明する。
<Property box display example>
The property box that is displayed when you select "Properties" from the context menu of a UI component 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に対する設定操作を行うことができる。 Figure 28(a) shows an example of the display of a pie chart property box. Figure 28 shows a screen that is displayed by right-clicking pie chart 531, a UI component placed on canvas 530, in the display state shown in Figure 5(b) and selecting Properties from the displayed context menu. The process of displaying this screen and accepting editing processing for the displayed property box are performed in S706 of Figure 7, as described above. Property box 2810 is the property box for pie chart 531. Property box 2810 is displayed along with pie chart 531 displayed on canvas 530. The display format of the contents displayed in pie chart 531, such as the pie chart ratio and color coding, is displayed based on the settings made in property box 2810. When the settings made in property box 2801 are changed and the Apply button 2811 is pressed, the display format of pie chart 531 is updated based on the latest settings (changed settings) in property box 2801. In other words, the developer can perform setting operations for property box 2810 while checking how the display format of 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 component list, if no values are set, the pie chart's respective zones will not be displayed, and it will simply appear as a circle. This means that developers cannot intuitively recognize that the placed UI component is a pie chart when they look at it. To solve this, we will set pre-defined initial values (default settings not set by the developer) as properties for the pie chart. By doing this, when a pie chart is placed on the canvas by dragging and dropping it from the UI component list, a pie chart with zones divided by zones will be displayed from the start, allowing developers to quickly and intuitively recognize that the placed UI component is a pie chart.

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

[{″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″:″F eb″, ″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 the same structure as when written in a programming language. Of the entire text of the initial value above, the portion enclosed in "{" and "}" is a dataset corresponding to one section in the pie chart. A pair of strings enclosed in "" and associated with a colon (:) is a pair of key name and key value. For example, in "id":"Jan", the key name is "id" and the key value is "Jan". The comma (,") separates the previous and next keys. That is, of the entire text of the initial value above, the portion containing multiple pairs {"id":"Jan", "value":developer terminal 100.33, "color":"#394E79", "month":"Jan"} is a dataset (one set), containing four key name-value pairs: id, value, color, and month. It can be seen that there are a total of five similar datasets. In this way, the initial values of the pie chart are a set of settings that includes multiple data sets each including a set of default settings.

開発者は、プロパティボックス2810のValue入力領域2812に表示された初期値を、Value入力領域2812を選択してキーボードからの入力を行うことで自由に編集可能である。ただし、初期値として、上記のように構造がわかるように表示されているため、どこをどのように編集すれば良いのかを理解しやすい。また、適用ボタン2811を押下すれば編集した内容がパイチャート531に反映されるため、どこの構造の値を変更するとパイチャート531がどのように変化するかを確認できる。そのため、プログラミング言語で記述可能な構造で表示された文字列のうち、どこがどういう意味なのかというのも理解しやすい。 Developers can freely edit the initial value displayed in the Value input area 2812 of the property box 2810 by selecting the Value input area 2812 and entering the value from the keyboard. However, because the initial value is displayed in a way that makes the structure clear, as shown above, it is easy to understand where and how to edit. Furthermore, by pressing the Apply button 2811, the edited content is reflected in the pie chart 531, so it is possible to see how the pie chart 531 changes when the value of a particular structure is changed. This makes it 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 the developer simply wanted to be able to set the pie chart's settings, one possible approach would be to separate the settings into categories like "Area 1 ID," "Area 1 Value," "Area 1 Color," "Area 1 Display Label," etc. in the property box 2810, and have the developer input or select values for each. However, this embodiment does not do this. Instead, the initial values are displayed in a structure similar to that used in programming languages, and developers are required to enter edits in a structure consistent with that used in programming languages. This is because the pie chart's settings can be changed by actions entered in JavaScript into other UI components or the canvas's action board. If the initial values are displayed as copyable text (character strings) in a structure compatible with programming languages, developers can simply copy this text to the clipboard using the well-known copy function and paste it into the action board (copy and paste). Then, by modifying only the text in the action board where the change is desired, developers can easily write actions to change the pie chart's display content. This prevents developers from being unable to write the intended action when they want to write an action that changes the display format of a pie chart because they don't know how to write it, or from spending a lot of time figuring out how to write it. In other words, it allows for more efficient software development. Because it is a programming language, there is a high degree of freedom when making other edits.

図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 enters an action that changes (specifies) the display format (display content) of pie chart 531 into the action board of a UI component (button) other than pie chart 531. The illustrated action board 2900 is a description area (input area) in which the action to be executed when the button is pressed in the constructed app is written in a programming language. Lines 2 through 32 of the string (JavaScript string) displayed on action board 2900 were created by copying and pasting the initial value displayed in the Value input field 2812 of property box 2810, with line breaks added for clarity. Only values 2901 through 2951 were edited (changed). Of course, other parts may be changed, and data sets (the parts enclosed in "{ }") may be added or deleted. This makes it extremely easy to enter actions in a programming language. In the created app, when the button corresponding to this action board is pressed, the pie chart will be displayed in a format based on the content described in this action board, rather than the default value.

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

パイチャートと同様に、UI部品のうちLINE CHART(ラインチャート、線グラフ)にも初期値(デフォルトの設定値)が設定されており、プロパティボックスにおいて初期値がプログラミング言語で記述する場合の構造に則って表示される。図28(c)に、LINE CHART2803のプロパティボックス2830の表示例を示す。入力領域2831~2834には、図示の通り、初期値がプログラミング言語で記述する場合の構造に則って表示される。 Like pie charts, LINE CHART (line charts, line graphs), a UI component, also has initial values (default settings) set, and the initial values are 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 for LINE CHART 2803. As shown, the initial values are 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セットのデータセットとして、複数行分のデータセットを含む。 Similar to pie charts, initial values (default settings) are set for UI components such as data grids (tables), combo boxes, tab components, steppers, and breadcrumbs, and the initial values are displayed in the property box in accordance with the structure when written in a programming language. Figure 28(d) shows an example of the display of the property box 2840 for data grid 2804. As shown, the initial values are displayed in the input area 2841 in accordance with the structure when written in a programming language. The initial values for a data grid include multiple rows of data sets, 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 processing of the data grid in the developer terminal 100. This processing is a detailed flowchart of S705 in the above-mentioned 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. Figure 31(a) shows an example of the display of a context menu for the data grid. Data grid 3110, a UI component placed 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 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. The context menu 3120 displays at least properties 3121 and actions 3122 as options to be used as 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 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 action 3122 has been pressed (selected) from the options included in the context menu 3120. If action 3122 has been pressed (selected), the process proceeds to S3020; if not, the process proceeds to S3004.

S3004では、開発者用端末100は、コンテキストメニュー3120に含まれる選択肢のうち、その他の選択肢が押下(選択)されたか否かを判定する。その他の選択肢が押下(選択)された場合はS3005に進み、そうでない場合にはS3006へ進む。 In S3004, the developer terminal 100 determines whether any of the other options included in the context menu 3120 have been pressed (selected). If any of the other 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 the pressing (selection) of 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 to click outside the area where 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 of FIG. 30 ends. If no operation to close the context menu has been performed, the process 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 the property box of the data grid, which is the specified UI component. Figures 31(b) to 31(f) show display examples of the data grid property box. In Figures 31(b) to 31(f), the same display items are assigned the same symbols. The Apply button 3131 in Figure 31(b) is a button icon that instructs the application to reflect the contents entered in the property box (changed settings). When the Apply button 3131 is pressed, the display form of the data grid, which is the specified UI component placed on the canvas displayed together with the property box, changes based on the latest settings in the property box. The column selection field 3132 is a selection tab for selecting the column whose settings you want to change. The data grid property box displays a screen that accepts settings for each column and accepts property settings for each column. The Add Column button 3133 is a display item that instructs the application 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; if not, the process proceeds to S3013. 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 settings 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 is not for selecting 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 settings screen (element screen) for the selected column. Figure 31(c) shows an example of the display when tab 3132E (the tab labeled "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 settings screen for tab 3132E is displayed as a screen for accepting settings for the column corresponding to tab 3132E. This area includes, for example, a type setting field 3135 for selecting the component type (part type) of the column. The settings screen for tab 3132E continues downward, and the lower part can be displayed by scrolling. Figure 31(d) shows an example of the display when scrolling to display the lower area 3134d of the settings screen for tab 3132E. The lower area 3134d includes a column deletion button 3136 for deleting the column corresponding to tab 3132E, and an apply button 3137 for applying the settings made on the settings screen for tab 3132E and reflecting them in the data grid displayed on the canvas. The column selection field 3132 moves upward as the user scrolls and is no longer visible within the property box, but it will reappear if the user scrolls back to display the upper area 3134t. 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 settings screen for configuring 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 column addition processing. In the column addition processing, 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 (table column) 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 properties box is displayed when a column is added. Compared to Figure 31(c), a tab 3032F (a tab labeled "CompanyF") corresponding to the new column has been added to the column selection field 3132. Immediately after 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, adding a column to a data grid (table) is performed by operating the properties box, which is the settings screen for the data grid.

S3015では、開発者用端末100は、選択されているカラムについての設定操作があったか否かを判定する。具体的には、カラム選択欄3132より下側の領域に表示された設定画面への各種設定欄への入力操作があったか否かを判定する。設定欄への入力操作があった場合にはS3016へ進み、そうでない場合はS3017へ進む。 In S3015, the developer terminal 100 determines whether a setting operation has been performed on the selected column. Specifically, it determines whether an input operation has been performed on any of the setting fields on the setting screen displayed in the area below the column selection field 3132. If an input operation has been performed on any of 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 type setting for the type setting field 3135. In this way, the data grid allows the component type to be selected for each column. The following options are displayed for the component types that can be set in a column: TextInput, NumberInput, ComboBox, Multi-Select, CheckBox, DataPicker, Link, Button, and IconButton, 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, 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. Additionally, settings that can be configured on the overall settings screen for the data grid corresponding to the "DataGrid" tab include the following: ID (data grid UI component ID), overall size of the DataGrid (width, height), whether to make it editable in the deployed app, whether to display an add row button to add a row to the data grid in the deployed app, whether to display a delete button for the datagrid, whether to display an update button for the datagrid, 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 content set in the property box in the definition information stored in memory 102, and changes the display format of the data grid, which is the specified UI component displayed on the canvas of the UI editor, to reflect the content set. For example, if a column has been added, the data grid is displayed in a format with one additional 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 the End button 3140 has been pressed. If the End button 3140 has been pressed, the property box is hidden and the processing in Figure 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 more easily. In particular, adding a column to a data grid can be done by operating the data grid's property box, and you can then perform configuration operations for the added column 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. Furthermore, after adding a column, you can set the type from the options that can be set as a column component, so you can add columns and configure the type without any 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. Figure 32(a) shows an example of the display in S3020. Figure 32(a) is an example of the display when action 3122 is pressed from the state of Figure 31(a). The same display elements are assigned the same symbols in Figures 31(a) and 32(a). Submenu 3210 is displayed as a submenu of action 3122 of context menu 3120. Submenu 3210 includes options 3211 to 3217. Option 3211 is an option 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 action boards 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 data grid column different from 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 either the action option for the entire data grid (option 3211) or the action options for each column (3212-3217) has been selected. If any 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 action options (options 3211) for the entire data grid. "DATA GRID" is selected in the overall or column selection area 3220, indicating that action board 3211a is the area for entering actions for the entire data grid. The trigger for executing the content set in action board 3211a is predetermined, and is triggered by pressing a global button displayed outside the column of the data grid area, which is the specified UI component in the built application. In other words, this trigger is related to the data grid (table), which is the specified UI component, and is not related to the columns of the data grid. A global button is a button that is displayed when it is set to display in the settings screen corresponding to the "DataGrid" tab in the properties box mentioned above. Examples include the aforementioned data grid delete button and data grid update button. Therefore, developers do not need to set what triggers execute actions (there is no need to write it in JavaScript). This action board 3211a can be configured by writing actions in JavaScript, such as calculating the total of all rows in a specific column and displaying it in another UI component, saving the content displayed in the data grid to a database, or transitioning to another UI screen.

図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 an action board display corresponding to an action option (option 3212) for a specific column in a data grid. "MONTH" is selected in selection area 3220, and action board 3212a indicates that it is the area for entering an action for the column (column 3111) whose label or column ID is "MONTH." The trigger for executing the content set in the column's action board 3212a is predetermined, and is triggered when a cell value in any row of the corresponding column among the specified UI components in the built application is changed, or when a button displayed in a cell in any row of the corresponding column is pressed. Therefore, developers do not need to specify the trigger for executing the action (there is no need to write it in JavaScript). For example, this action board 3212a can be configured with an action such as calculating the sum of the value of the row in which the column corresponding to action board 3212a has 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 actions that affect other columns in the data grid, which is the specified UI component, other than the column corresponding to the selected option 3212.

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

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

S3024では、開発者用端末100は、アクションボードを閉じる操作(アクションボード処理を終了する操作)があったか否かを判定する。アクションボードを閉じる操作が無い場合にはS3023に進んで処理を繰り返す。アクションボードを閉じる操作があった場合にはアクションボードを非表示とし、選択中UI画面のキャンバスの表示に切り替え、UIエディタ処理へ戻る。 In S3024, the developer terminal 100 determines whether an operation to close the action board (an operation to end action board processing) has been performed. If an operation to close the action board has not been performed, the process proceeds to S3023 and repeats the process. 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, a list of options corresponding to the action boards of all columns included in the data grid (table) is displayed, allowing developers to recognize that actions can be set for each column, reducing the possibility of forgetting to set an action for a column. Furthermore, 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 carried out while understanding, without confusion, which data grid and which column the action set in the action board relates to.

<アクション実行関連処理>
図33(a)に、定義情報の記録先となる開発環境300が実行する保存処理(記録制御処理)のフローチャートを示す。この処理は、前述の図4のS422において、開発者用端末100から送信された、定義情報を受信したことに連動して実行する処理である。
<Action execution related processing>
33(a) shows a flowchart of the save process (recording 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 diagram that schematically illustrates 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 definition information (UI definition information) for the selected app has been received 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 Figure 34, UI definition information 3401 recorded in 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 written in JSON format with the file name "uiDef.json". JSON stands for JavaScript Object Notification, a document standard for handling values in JavaScript, and a data description language. UI definition information 3401 includes various settings related to the app, such as the initial UI, and information defining UI component (UI part) information for each UI screen (position, size, color, etc.). UI definition information 3401 also includes an action description portion 3402. This action description section 3402 is a string of characters entered into the action board or function setting screen (including the creation function setting screen) of each UI component or canvas. The action description section 3402 includes actions written in JavaScript and function definitions in Json format that describe the contents set on the function setting screen without having to enter JavaScript. This UI definition information 3401 is sent (uploaded) from the developer terminal 100 to the development environment 300 and 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 Figure 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 Figure 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 execution environment program 3413 saved in the development environment 300 by the save process described in Figure 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 Figure 24 described above. As a result, as shown in Figure 34, the UI definition information 3421 and execution environment program 3423 are recorded in the execution environment 400. The UI definition information 3421 and execution environment program 3423 in the execution environment 400 are the same information as the UI definition information 3411 and execution environment program 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 when a deployed (built, generated) application 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 when an application that has been deployed (built, generated) in execution environment 400 is accessed using the browser software on 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 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).

図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), which will be described later. If a request to obtain UI definition information has been received, the execution environment 400 proceeds to S3312; if not, the execution environment 400 waits in S3311.

S3312では、実行環境400は、UI定義情報をアプリユーザー用端末200に送信する。これによって、図34に図示した通り、実行環境400に記録されたUI定義情報3421がアプリユーザー用端末200にダウンロードされ、UI定義情報3431として記録される。UI定義情報3421とUI定義情報3431とは同じ情報である。 In S3312, the execution environment 400 sends 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 an 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), which will be described later. 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 entered by the user on the application user terminal 200 for a UI component classified as an input item among the UI components displayed on the application screen. For example, it is text entered into a text field. 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 the value of the input item has been received (if the value of the input item was included in the action request), the process proceeds to S3315; otherwise, the process proceeds 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 perform the requested action. If an input item value has been received, the action is performed using the input item value as well. For example, the requested action portion of the execution environment program 3424 is executed using the input item value as an argument.

S3317では、実行環境400は、S3316でのアクションの実行の結果、アプリユーザー用端末200に表示されるアプリの画面に表示すべき値である、出力項目の値があるか否かを判定する。例えば、アクションが“四則演算を行う”といったアクションであった場合には、演算の解が出力項目の値として得られる。また、例えばアクションが“画面遷移する”や、“データベースに記録する”といったアクションであった場合には、アクションの結果としての出力項目の値は無いこともある。出力項目の値がある場合にはS3318に進み、そうでない場合にはS3319へ進む。 In S3317, the execution environment 400 determines whether or not there is a value for the output item, which is a value to be displayed on the app screen 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 "performing arithmetic operations," the solution to the operation is obtained as the value of the output item. Also, for example, if the action is an action such as "transitioning to a screen" or "recording 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; 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に表示されるアプリの画面において画面遷移が発生する。 At S3319, the execution environment 400 sends result information of the action executed at S3316 to the application user terminal 200. If action result information including values of output items was generated at S3318, the values of the output items are also sent to the application user terminal 200. Then, at S3348 in FIG. 33(c) (described below), the values of the output items are 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 application screen displayed on the display 105 of the application user terminal 200 by processing at S3347 in 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 runtime environment 400 determines whether or not to terminate the processing. If the runtime environment 400 determines to terminate the processing (Yes in S3320), the processing terminates. If the runtime environment 400 determines not to terminate the processing (No in S3320), the processing returns to S3313. For example, the runtime environment 400 determines to terminate the processing when an event occurs in S3350 that terminates the app, which will be described later.
33(c), application user terminal 200 (including application user terminal 201, but the following description will use 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 to specify and access the URL of a deployed application (URL for accessing the execution environment) (for example, an operation to click on a link for the application's URL, or an operation to enter the application's URL in the address bar and press Enter), 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 execution environment's distribution engine (distribution engine 415, 455, 465, 475, etc., for the accessed execution environment) transmits the client program recorded in storage (client program 422, 456c, 466c, 476c, etc., for 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; 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 runtime environment 400. The client program received in S3332 defines that when the runtime environment is accessed, a request to obtain UI definition information is first issued. S3333 is processing that follows this definition. The UI definition information obtainment request sent here is received by the runtime environment 400 in S3311 of Figure 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 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 of 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 as temporary information in memory 102 (work memory) and is automatically deleted when the application is terminated (when the connection to the application's URL is terminated). The application user terminal 200 also 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 to which the transition will be made) or an operation has been performed on a UI component displayed on the application screen (a click or other action trigger on a UI component). 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 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 the description extracted in S3336 from the beginning for the character string "$ui" in half-width characters.

S3338では、アプリユーザー用端末200は、S3337の検索の結果、「$ui」という文字列があったか否かを判定する。「$ui」があった場合にはS3339に進み、そうでない場合にはS3343に進む。 In S3338, the application user terminal 200 determines whether the search result of S3337 contains the character string "$ui." 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 containing that character. A "sentence" (one statement) is a string of characters in a programming language that is separated by a line terminator (for example, a semicolon ";") or a closing bracket "}". In other words, two statements are separated by a line terminator or a closing bracket ('}'). If the "$ui" found in the search is located to the left of the "=" (equal sign) in the sentence, it is determined to be on the left side. If "$ui" is on the left side, proceed to S3340; 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.target information type) of a predetermined structure beginning with "$ui" found in S3338 as an output item in the item definition list (item definition list 3433 in Figure 34) generated in memory 102. Specifically, the application user terminal 200 obtains the UI component ID (item code, component identifier) from the element string ($ui.UI component ID.target information type) of a structure separated by a period (.") beginning with "$ui," and records that the UI component is an output item. For example, if a trigger related to action A occurs, and "$ui" is found in the description portion related to action A, and it is on the left side, and the UI component ID is "UI component ID3," then the presence of UI component ID3 in the output item is recorded, as in item definition list 3433 in Figure 34. Note that the item definition list 3433 is information temporarily stored in 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, described below, or processing in S3349 is completed) 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 located anywhere other than on the left side of a sentence containing the character. "Located somewhere other than on the left side" means that the character string is located on the right side (to the right of the "=") or in a portion not containing the "=". If the character string is located somewhere 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 located somewhere 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 of a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type) found in S3338 as an input item in the item definition list (item definition list 3433 in Figure 34) generated in memory 102. Specifically, the application user terminal 200 obtains the UI component ID (item code, component identifier) from the element string of a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type), and records that the UI component is an input item. For example, if a trigger related to action A occurs, and "$ui" is found in the description section related to action A, and it is on the right and the UI component ID is "UI component ID1," then it is recorded that UI component ID1 is present in the input item, as shown in item definition list 3433 in Figure 34. Also, for example, if a trigger related to action A occurs, "$ui" is found in the description section related to action A, it is in a sentence without "=", and the UI component ID is "UI component ID2", then it will be recorded that UI component 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 processing of S3342, the process proceeds to S3337, where the continuation of the description extracted in S3336 is searched for the character string "$ui", 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 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へ進む。 At 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 contains a value. For example, if the description extracted in S3336 contains "$ui.UI component ID1.value," it determines whether the information of type "value" in the UI component with UI component ID1 contains a value. If the UI component with UI component ID1 is a TextField, the value is the text (character string) entered in that TextField. In other words, it determines whether the application user has entered text via the keyboard for UI component ID1, which is a TextField displayed on the application screen. If text has been entered, it determines Yes; if the field is blank, it determines No. This determination is made for all input items recorded in the item definition list 3433. If the information targeted for 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 that requests the execution of an action corresponding to the trigger detected in S3335, and that includes the value of the input item. For example, the application user generates an action request that includes, as the value of the input item, information about the text entered by the application user on the keyboard for UI component ID1, which is a TextField displayed on the application screen 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で実行される。 At S3345, the application user terminal 200 transmits to the runtime environment 400 an action request requesting the execution of an action corresponding to the trigger detected at S3335. If an action with an input field value was generated at S3344, the value of the input field is also transmitted to the runtime environment 400. For example, as the input field value, text information entered by the application user via the keyboard for UI component ID 1, which is a TextField displayed on the application screen displayed on the display 105 of the application user terminal 200, is transmitted to the runtime environment 400. The transmitted action request is received by the runtime environment 400 at S3313 in Figure 33(b) described above, where it is executed in the runtime environment 400. As described in S3314 to S3319, the action corresponding to the trigger detected at S3335 is executed in the runtime environment 400.

S3346では、アプリユーザー用端末200は、S3345で送信したアクション要求に対応するアクションの結果を実行環境400から受信したか否かを判定する。アクションの結果を受信した場合にはS3347へ進み、そうでない場合にはS3346でアクションの結果の受信を待つ。 In S3346, the application user terminal 200 determines whether or not it has received the results of the action corresponding to the action request sent in S3345 from the execution environment 400. If it has received the results of the action, it proceeds to S3347; if not, it waits for the results 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, the display is also based on the UI definition information stored in 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 action result 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 on the output item recorded in the item definition list 3433 held in 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 has occurred that will cause the application to terminate. Events that cause the application to terminate include, for example, disconnecting 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 an unrelated URL, etc.). If there is no event that will cause the application to terminate, the process proceeds to S3335; if there is an event that will cause the application to terminate, 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 string in a programming language entered into the action board 910 shown in Figure 10(d), we will now provide a more detailed explanation of the process of determining whether a 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;" Because "$ui" is on the right-hand side of this statement, "text_field_a" is recorded as an input item in the item definition list at 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, the left side contains the string "$ui.text_area_a.value," which includes "$ui." Therefore, S3340 records "text_area_a" as an output item in the item definition list. In other words, the value indicated by the right side of the "=" (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 also contains processing (logic) that outputs the value indicated by the right side of the "=" (the output value obtained as a result of the action) to that output item. In this way, one of the distinctive features of this embodiment is that input and output items can also be defined within a statement that contains logic (processing that differs from the definition of at least one of the input and output items). Similarly, line 6 is also a logic part, and because "$ui.text_area_a.value" is on the left side, it is treated as an output item.

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

(各行先頭の数字は行数を示す補助文字であってプログラミング言語の本文ではない)
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 indicating 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 that uses the input values ('$ui.PREF_CODE.value', $ui.PREF_NAME.value) on the app screen as parameters for the SQLSave function to register them in the database. In this case, $ui.{component ID}.{target information type} used as a parameter for 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部品の色を変更することができる。 Furthermore, in element strings with a specified structure using "$ui," the type of information being targeted can be something other than value, such as color. For example, you can change the color of a UI component by writing "$ui.UIComponentID.color = "#008000";".

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

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

本実施形態では、特定の識別子を半角の「$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 the Unicode dollar character. The half-width character "_" is the Unicode underscore character.

また、本実施形態では、図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 addition, in this embodiment, as described in S3304 of FIG. 33(a), the development environment 300 generates an 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 app 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 on the application user terminal 200 based on the UI definition information. By doing this, when the app developer accesses the development environment 300 on the developer terminal 100 to develop the app, there is no need to particularly distinguish between information required for processing executed in the execution environment 400 and information required for processing executed on the application user terminal 200 when the constructed app 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 development effort 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 execution environment program 3414 is generated during the save process in the development environment 300. However, the development environment 300 may not generate the execution environment program 3414, and instead, after recording the UI definition information 3421 in the execution environment 400, the execution environment 400 may generate the execution environment program 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 (recording control process) executed by the development environment 300, which is the destination for recording 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と同じ情報には同じ符号を付す。 Furthermore, Figure 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. Figure 36 is a diagram that schematically illustrates the transition of information due to the processing of the flowcharts in Figures 35(a) to 35(c). In Figure 36, the same information as in Figure 34 is assigned 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 processing to generate 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 Figure 36, unlike Figure 34, UI definition information is not sent to application user terminal 200 (it is not even temporarily stored on application user terminal 200). This prevents the detailed definition of a developed application from being leaked via application user terminal 200, and increases the confidentiality of the configuration of the developed application. This reduces the possibility that a third party will create an application that imitates at least a portion of the developed application (for example, JavaScript code written in an action board). Furthermore, application user terminal 200 does not need to perform the process of analyzing UI definition information and generating item definition list 3433 (processing S3338 to S3342 in Figure 33(c)) every time an action is triggered. This reduces the processing load on application user terminal 200 and enables application operation with a smooth response (speed of response).

図35(a)のS3501~S3504は、前述した図33(a)のS3301~3304と同じ処理であるため説明を省略する。図35(a)では図33(a)の処理に加えて、S3505以降の処理を行う。 Steps S3501 to S3504 in Figure 35(a) are the same as steps S3301 to S3304 in Figure 33(a) described above, so their explanation will be omitted. In Figure 35(a), in addition to the processing in Figure 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 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 information obtained from the UI definition information 3411, such as various setting information related to the application, such as the initial UI, information on UI components (components) for each UI screen (such as UI component IDs and property settings, and the placement and size of UI components), canvas action identifiers, and UI component action identifiers. The client UI definition information 3615 also records input/output item definitions for each action (definitions of which components are included in the input and output items). At the time of S3505, the contents of the input/output item definitions for each action have not yet been inserted (they will be inserted in the processing of S3506 to S3512, described below). 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 defining the input and output items for each action, but does not include information indicating the operation 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. This process extracts not only descriptions related to specific actions, but also descriptions related to all 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 the string "$ui" was found as a result of the search in S3337. If "$ui" was found, proceed to S3509; if not, end processing. S3508 returns No if all "$ui" searches have been completed or if there was no "$ui" at all 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 containing 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 a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type) found in S3338 as an output item in the client UI definition information 3615 generated in S3505. More specifically, in the array defining the output items in the client UI definition information 3615, the UI component ID is obtained from the element string of a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type) found in S3338, and recorded in the "uiItemsOut" array in the input/output item definition for each action. 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, similar to S3341 in FIG. 33(c), the development environment 300 determines whether the "$ui" character string found in S3508 is found anywhere other than on the left side of the sentence containing the character. 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 "$ui" character string being found anywhere other than on the left side of the sentence containing the character, and therefore 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 a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type) found in S3338 as an input item in the client UI definition information 3615 generated in S3505. More specifically, in the array defining the input items in the client UI definition information 3615, the UI component ID is obtained from the element string of a predetermined structure beginning with "$ui" ($ui.UI component ID.target information type) found in S3338, and recorded in the "uiItemsIn" array in the input/output item definition for each action. 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 processing of S3512, the process proceeds to S3507, where the string "$ui" is further searched for in the continuation of the description extracted in S3506, and processing of S3507 to S3512 is repeated until it is determined in S3508 that "$ui" is not present. In other words, processing of S3509 to S3512 is performed for all $ui strings contained in the description 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 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に関する説明は同様であるため省略する)。 Figure 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 on application user terminal 200 or 201. The application execution processing in execution environment 400 in Figure 35(b) and the application execution processing in application user terminal 200 or 201 in Figure 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 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 execution environment 400 proceeds to S3522; if not, the execution environment 400 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 client UI definition information 3615 to the execution environment 400 without sending UI definition information 3411 to the application user terminal 200. As a result, as shown in FIG. 36, 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 of S3523 to S3530 is similar to S3313 to S3320 in Figure 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 Figure 35(c) are similar to steps S3331 to S3333 in Figure 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 client UI definition information has been received from the execution environment 400. The client UI definition information received here is the information sent from the execution environment 400 in S3522 of FIG. 35(b) described above. If client UI definition information has been received, the application user terminal 200 records the client UI definition information in memory 102 and proceeds to S3545; otherwise, the application user terminal 200 waits for reception of client UI definition information in S3544. The client UI definition information is recorded as temporary information in memory 102 (work memory) and is automatically deleted when the application is terminated (when the connection to the application's URL is terminated). The application user terminal 200 also displays the application screen on the display 105 based on the client UI definition information 3635 recorded in memory 102.

S3545では、アプリユーザー用端末200は、前述した図33(c)のS3335と同様、アクションのトリガーが発生したか否かを判定する。アクションのトリガーがあった場合にはS3546へ進み、そうでない場合にはS3553へ進む。 In S3545, the application user terminal 200 determines whether 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 processing of S3546 to S3553 is similar to the processing of S3343 to S3350 in FIG. 33(c) described above, respectively, and therefore will not be described again. In this modified example, the processing corresponding to S3336 to S3342 in FIG. 33(c) described above is not performed by the application user terminal 200.

なお、上述の各フローチャートで説明した各種制御は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.
Furthermore, although the present invention has been described in detail based on its 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-described embodiments merely represents one embodiment of the present invention, and each embodiment can be combined as appropriate.

(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又は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 media storing the program constitute the present invention.

<複数の観点>
上述の実施形態で説明した通り、本実施形態の情報処理システムは以下のような構成を含む。また、本実施形態は、以下の構成の各手段が実行するステップを有する情報処理システムの制御方法を示している。また、本実施形態は、以下の構成の各手段として少なくとも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 that causes 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 about the creation function based on the input operation received by the receiving means;
a control means for, when acquiring a character string written in a programming language and including identification information of the created function, performing control to enable execution of a function indicated by the character string including a function of the created function based on the information set by the setting means;
An information processing system comprising:

[構成1―2]
ユーザーがプログラミング言語で記述する入力とは異なる入力操作であって、創作関数を作成するための設定画面に対する前記ユーザーからの入力操作に基づいて、前記創作関数に関する情報を設定する設定手段と、
プログラミング言語の記述領域に、前記創作関数の識別情報に一部一致する文字列が入力された場合に、前記創作関数の識別情報の選択肢を表示するように制御する表示制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 1-2]
a setting means for setting information about the created function based on an input operation from the user on a setting screen for creating the created 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 created function when a character string that partially matches the identification information of the created function is entered in 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 created function based on an input operation from the user on a setting screen for creating the created 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 the identification information of the created function set by the setting means together with a description area of the 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 the 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 control means for controlling, when an operation to place another component in an area of the first type component placed on the development screen is performed, 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 the input area for 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 specific environment from a specific area of a specific environment that is the second type of environment and that is accessible to a user connected to the first type of environment;
An information processing system characterized by having a transmission control means for controlling the transmission of a request to execute a predetermined process (e.g., a process for transmitting user information) to the 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 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 the environment identified by the environment identification information without acquiring authentication information related to the second type of environment from a user, based on the environment identification information acquired by the acquisition means;
An information processing system comprising:

[構成6]
アプリケーションソフトウェアを構築するためのクライアント端末における開発画面として、構築される前記アプリケーションソフトウェアで表示される画面に配置するコンポーネントが操作された場合のアクションを入力する入力領域を表示するように制御する表示制御手段と、
前記入力領域に入力されたアクションの情報を含む前記アプリケーションソフトウェアの定義情報を記録するように制御する記録制御手段と、
前記アプリケーションソフトウェアの実行環境で実行すべきアクションを定義した第1の情報を、前記定義情報に基づいて生成するように制御する第1の制御手段と、
前記アプリケーションソフトウェアを実行する際に前記実行環境にアクセスする端末装置が用いる第2の情報を、前記定義情報に基づいて生成するように制御する第2の制御手段と、
を有することを特徴とする情報処理システム。
[Configuration 6]
a display control means for controlling the display of an input area for inputting an action when a component to be arranged on a screen displayed by the application software to be built is operated, as a development screen in a client terminal for building the application software;
a recording control means for controlling recording of 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 the display of a setting screen (property box) for the selected table;
Controlling to add a column to the table in response to a first operation on the setting screen;
and 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]
Accepting means for accepting a table selection;
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 action input screen;
and a control means for controlling, in response to a selection of one of the plurality of options, to display an input screen for an action in the column corresponding to the selected option and to accept an input operation for the action from the user.

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

[構成10]
プログラミング言語でソースコードを記述する操作を含まず、選択肢から選択する操作を含む操作群に基づいて、構築されるアプリケーションソフトウェアの画面に対してアクションを定義する、あるいは構築される前記アプリケーションソフトウェアの画面に表示されるコンポーネントとしてアクションが定義された自動生成部品を配置するように制御する制御手段と(例えば、ワークフロー生成によるアクションが定義されたボタンの配置、キャンバスにアクションが定義されたUI画面、CRUDボタン配置によるボタンの配置、UI画面の生成、等)、
前記制御手段によってアクションが定義された画面と前記自動生成部品とのいずれかが選択され、アクションを表示する指示があったことに応じて、前記選択がなされた対象に定義されたアクションをプログラミング言語での文字列で表示するように制御する表示制御手段と、
前記表示制御手段によって表示された、アクションを表すプログラミング言語での前記文字列の修正操作を受け付ける受付手段と、
を有することを特徴とする情報処理システム。
[Configuration 10]
a control means for defining an action on a screen of application software to be constructed based on a group of operations including an operation of selecting from options and not including an operation of writing source code in a programming language, or for controlling the placement of automatically generated components with actions defined as components to be displayed on the screen of the application software to be constructed (for example, placement of a button with an action defined by workflow generation, a UI screen with 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 the display of the action defined for the selected object as a character string in a programming language in response to a selection by the control means of either the screen on which the action is defined or the automatically generated component and an instruction to display the action;
a receiving means for receiving a modification operation of the character string in a programming language that represents an action and that is 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 the operation accepted by the accepting means;
a display control means for controlling, in response to completion of deployment of the application in response to an instruction from the instruction means, to display access destination information indicating the 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 display of a layout editing screen for the authentication screen, on which template components for which predetermined actions are defined are pre-arranged, as a template for 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 recording of 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 receiving 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. Therefore, the following claims are appended to clarify the scope of the invention.

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

Claims (12)

端末装置を含む情報処理システムであって、
前記情報処理システムは、
アプリケーションを構築するための開発画面として、構築される前記アプリケーションで表示される画面に配置するコンポーネントが操作された場合のアクションを入力する入力領域を表示するように制御する表示制御手段と、
前記入力領域に入力されたアクションの情報を含む前記アプリケーションの定義情報を記録するように制御する記録制御手段と、
前記アプリケーションの実行環境で実行すべきアクションを定義した第1情報を、前記定義情報に基づいて生成するように制御する第1制御手段と、
前記アプリケーションを実行する際に前記実行環境にアクセスする端末装置が用いる第2情報を、前記定義情報に基づいて生成するように制御する第2制御手段と、
を有し、
前記第2制御手段は、
前記実行環境から送信された前記定義情報のうち、前記アクションの情報に基づいて、アプリケーションで表示される画面に配置するコンポーネントが、前記実行環境に送信すべき値が入力される入力項目であるか、前記実行環境から送信された値を表示すべき出力項目であるかを定義した前記第2情報を生成するように制御し、
前記端末装置は、
構築された前記アプリケーションの実行の際に、前記第2情報に基づいて、前記コンポーネントが前記入力項目の場合は前記アプリケーションの画面を介して入力された値を前記実行環境に送信する、及び/又は、前記コンポーネントが前記出力項目の場合は前記実行環境から受信した値を前記アプリケーションの画面に表示するように制御する第3制御手段
を有することを特徴とする情報処理システム。
An information processing system including a terminal device,
The information processing system includes:
a display control means for controlling the display of an input area for inputting an action when a component to be arranged on a screen displayed by the application to be constructed is operated as a development screen for constructing the application;
a recording control means for controlling recording of definition information of the application 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 based on the definition information;
a second control means for controlling a terminal device that accesses the execution environment when executing the application to generate second information used by the terminal device based on the definition information;
and
The second control means
generating the second information defining whether a component to be placed on a screen displayed by an application is an input item into which a value to be transmitted to the runtime environment is input or an output item into which a value transmitted from the runtime environment is to be displayed, based on information about the action among the definition information transmitted from the runtime environment;
The terminal device
a third control means for controlling, based on the second information, when the constructed application is executed, to transmit a value input via a screen of the application to the execution environment if the component is the input item, and/or to display a value received from the execution environment on the screen of the application if the component is the output item.
An information processing system comprising:
前記情報処理システムは、前記実行環境を含み
前記実行環境は、構築された前記アプリケーションの実行の際に、前記端末装置で行われた操作と、前記第1情報とに基づいて、前記操作に応じたアクションを実行し、実行したアクションの結果に関する情報を前記端末装置に送信するように制御する第4制御手段
を有することを特徴とする請求項1に記載の情報処理システム。
the information processing system includes the execution environment ,
The information processing system according to claim 1, characterized in that the execution environment has a fourth control means for controlling, when executing the constructed application, the execution environment to execute an action corresponding to the operation performed on the terminal device based on the operation and the first information, and to send information regarding the results of the executed action to the terminal device.
前記第1情報は、プログラムであること
を特徴とする請求項1に記載の情報処理装置。
2. The information processing apparatus according to claim 1, wherein the first information is a program.
前記第1制御手段は、前記定義情報に含まれる前記アクションの情報に基づいて前記第1情報を生成するように制御すること
を特徴とする請求項1に記載の情報処理システム。
2. The information processing system according to claim 1, wherein the first control means controls to generate the first information based on information about the action included in the definition information.
前記情報処理システムは、前記端末装置を含み、
前記端末装置、開発環境および前記実行環境の少なくとも1つが、前記第2制御手段
を有することを特徴とする請求項1に記載の情報処理システム。
the information processing system includes the terminal device,
2. The information processing system according to claim 1, wherein at least one of the terminal device, the development environment, and the execution environment has the second control means.
前記情報処理システムは、開発環境および前記実行環境の少なくとも1つを含み、
前記端末装置、前記開発環境および前記実行環境の少なくとも1つが前記第2制御手段
を有することを特徴とする請求項1に記載の情報処理システム。
the information processing system includes at least one of a development environment and the execution environment;
2. The information processing system according to claim 1, wherein at least one of the terminal device, the development environment, and the execution environment has the second control means.
前記第2情報は、
前記アクションの動作内容を示す情報を含まないこと
を特徴とする請求項1に記載の情報処理システム。
The second information is
2. The information processing system according to claim 1, wherein the information processing system does not include information indicating the operation content of the action.
前記第2制御手段によって生成された前記第2情報が前記端末装置に送信され、前記アクションの動作内容を示す情報は前記端末装置に送信されず、
前記端末装置は、構築された前記アプリケーションの実行時に、前記第2情報に基づいて、前記アプリケーションの画面を介して入力された値を前記実行環境に送信する、及び/又は、前記実行環境から受信した値を前記アプリケーションの画面に表示するように制御すること
を特徴とする請求項1に記載の情報処理システム。
the second information generated by the second control means is transmitted to the terminal device, and information indicating the operation content of the action is not transmitted to the terminal device;
The information processing system described in claim 1, characterized in that when the constructed application is executed, the terminal device controls the transmission of values entered via the application screen to the execution environment based on the second information, and/or the display of values received from the execution environment on the application screen.
前記開発画面におけるユーザー操作に基づいて、構築されるアプリケーションで表示される画面に配置するコンポーネントの定義を行うように制御する定義手段をさらに有し、
前記定義情報は、前記定義手段で定義されたコンポーネントの定義も含むこと
を特徴とする請求項1に記載の情報処理システム。
The system further comprises a definition means for controlling the definition of components to be arranged on a screen displayed by the application to be constructed based on a user operation on the development screen,
2. The information processing system according to claim 1, wherein the definition information also includes definitions of components defined by the definition means.
前記表示制御手段は、
前記開発画面におけるユーザー操作に基づいて配置されたコンポーネントを指定する操作に基づいて、指定されたコンポーネントが操作された場合のアクションを入力する前記入力領域を表示するように制御すること
を特徴とする請求項1に記載の情報処理システム。
The display control means
The information processing system according to claim 1, characterized in that the input area for inputting an action to be taken when a specified component is operated is displayed based on an operation for specifying a component placed based on a user operation on the development screen.
端末装置を含む情報処理システムの制御方法であって、
前記情報処理システムの表示制御手段が、アプリケーションを構築するための開発画面として、構築される前記アプリケーションで表示される画面に配置するコンポーネントが操作された場合のアクションを入力する入力領域を表示するように制御する表示制御ステップと、
前記情報処理システムの記録制御手段が、前記入力領域に入力されたアクションの情報を含む前記アプリケーションの定義情報を記録するように制御する記録制御ステップと、
前記情報処理システムの第1制御手段が、前記アプリケーションの実行環境で実行すべきアクションを定義した第1情報を、前記定義情報に基づいて生成するように制御する第1制御ステップと、
前記情報処理システムの第2制御手段が、前記アプリケーションを実行する際に前記実行環境にアクセスする端末装置が用いる第2情報を、前記定義情報に基づいて生成するように制御する第2制御ステップと、
を有し、
前記情報処理システムの第2制御手段が、
前記実行環境から送信された前記定義情報のうち、前記アクションの情報に基づいて、アプリケーションで表示される画面に配置するコンポーネントが、前記実行環境に送信すべき値が入力される入力項目であるか、前記実行環境から送信された値を表示すべき出力項目であるかを定義した前記第2情報を生成するように制御し、
前記端末装置の第3制御手段が、
構築された前記アプリケーションの実行の際に、前記第2情報に基づいて、前記コンポーネントが前記入力項目の場合は前記アプリケーションの画面を介して入力された値を前記実行環境に送信する、及び/又は、前記コンポーネントが前記出力項目の場合は前記実行環境から受信した値を前記アプリケーションの画面に表示するように制御する第3制御ステップ
を有することを特徴とする情報処理システムの制御方法。
A control method for an information processing system including a terminal device, comprising:
a display control step in which a display control means of the information processing system controls to display, as a development screen for building an application, an input area for inputting an action when a component to be arranged on a screen displayed in the application to be built is operated;
a recording control step of controlling a recording control means of the information processing system to record definition information of the application including information on the action input in the input area;
a first control step of controlling a first control means of the information processing system to generate first information defining an action to be executed in the execution environment of the application based on the definition information;
a second control step in which a second control means of the information processing system controls to generate second information used by a terminal device that accesses the execution environment when executing the application based on the definition information;
and
The second control means of the information processing system
generating the second information defining whether a component to be placed on a screen displayed by an application is an input item into which a value to be transmitted to the runtime environment is input or an output item into which a value transmitted from the runtime environment is to be displayed, based on information about the action among the definition information transmitted from the runtime environment;
a third control means of the terminal device,
a third control step of controlling, based on the second information, when the constructed application is executed, to transmit a value input via a screen of the application to the execution environment if the component is the input item, and/or to display a value received from the execution environment on the screen of the application if the component is the output item.
1. A method for controlling an information processing system, comprising:
少なくとも1つのコンピュータを、請求項1乃至1のいずれか1項に記載された情報処理システムの各手段として機能させるためのプログラム。
A program for causing at least one computer to function as each means of the information processing system according to any one of claims 1 to 10 .
JP2022187339A 2022-11-24 2022-11-24 Information processing system, control method for information processing system, and program Active JP7807664B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022187339A JP7807664B2 (en) 2022-11-24 2022-11-24 Information processing system, control method for information processing system, and program
JP2026004833A JP2026065119A (en) 2022-11-24 2026-01-15 Information processing system, method for controlling the information processing system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022187339A JP7807664B2 (en) 2022-11-24 2022-11-24 Information processing system, control method for information processing system, and program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2026004833A Division JP2026065119A (en) 2022-11-24 2026-01-15 Information processing system, method for controlling the information processing system, and program

Publications (3)

Publication Number Publication Date
JP2024076009A JP2024076009A (en) 2024-06-05
JP2024076009A5 JP2024076009A5 (en) 2025-06-20
JP7807664B2 true JP7807664B2 (en) 2026-01-28

Family

ID=91330881

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022187339A Active JP7807664B2 (en) 2022-11-24 2022-11-24 Information processing system, control method for information processing system, and program
JP2026004833A Pending JP2026065119A (en) 2022-11-24 2026-01-15 Information processing system, method for controlling the information processing system, and program

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2026004833A Pending JP2026065119A (en) 2022-11-24 2026-01-15 Information processing system, method for controlling the information processing system, and program

Country Status (1)

Country Link
JP (2) JP7807664B2 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
NTT DATA INTRAMART CORPORATION,IM-BIS for Accel Platform 業務管理者 操作ガイド 第17版, [オンライン], [テキスト],2019年08月01日,[取得日 2025.08.14], 取得先 <https://accel-archives.intra-mart.jp/2022-spring/document/bis/public/bis_manager_guide/texts/advanced/include/custom_script_table.html>
NTT DATA INTRAMART CORPORATION,intra-mart Accel Platform セットアップガイド 第38版, [オンライン], [テキスト],2022年07月29日,[取得日 2025.08.14], 取得先 <https://accel-archives.intra-mart.jp/2022-spring/document/iap/public/setup/iap_setup_guide/texts/create_war/create_war.html>
OutSystems,OutSystemsオンラインヘルプ, [オンライン], [テキスト],2021年12月06日,[取得日 2025.08.14], 取得先 <https://web.archive.org/web/20211206061531/https://success.outsystems.com/ja-jp/Documentation/11/Developing_an_Application/Design_UI/Forms/Validate_the_fields_of_a_form>

Also Published As

Publication number Publication date
JP2024076009A (en) 2024-06-05
JP2026065119A (en) 2026-04-14

Similar Documents

Publication Publication Date Title
WO2019146047A1 (en) Information processing system, information processing method, and information processing device
WO2019146045A1 (en) Information processing system, information processing method, and information processing device
JP7807664B2 (en) Information processing system, control method for information processing system, and program
JP7807665B2 (en) Information processing system, control method for information processing system, and program
JP7799192B2 (en) Information processing system, control method for information processing system, and program
JP7799193B2 (en) Information processing system, control method for information processing system, and program
JP7807666B2 (en) Information processing system, control method for information processing system, and program
JP7801587B2 (en) Information processing system, control method for information processing system, and program
JP2025179891A (en) Information processing system, control method for information processing system, and program
JP2025180306A (en) Information processing system, control method for information processing system, and program
JP2025180307A (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
JP2024076010A (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
JP2024076011A (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
JP2024076013A (en) Information processing system, control method for information processing system, and program
JP2025098619A (en) Information processing system, control method thereof, and program
JP2024076015A (en) Information processing system, control method for information processing system, and program
JP2024149184A (en) Information processing system, information processing method, and program
JP2024149188A (en) Information processing system, information processing method, and program
JP2025180162A (en) Information processing system, information processing method and program
JP2025180159A (en) Information processing system, information processing method and program
JP2025180153A (en) Information processing system, information processing method and program
JP2025180167A (en) Information processing system, information processing method and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250612

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20250826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251229

R150 Certificate of patent or registration of utility model

Ref document number: 7807664

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150