Latest Articles

2018年9月、GMアップデート

Written by Hitoshi Fujii on . Posted in News

Atanas Popov9月の始まりにあたって、製品や製品パッケージに関する重要なアップデート情報をご案内します。

今年の早い段階で、クロスプラットフォームアプリ開発向けのFireMonkey(FMX)フレームワークを、すべてのProfessional版に組み込むことで、製品SKUをシンプルにしました。これにより、アップデートサブスクリプションに加入しているすべてのProfessional版をお持ちのお客様も、これを利用できるようになったのです。iOS、Android、macOSなどについて多くの変更があり、これらは、これからリリースされる10.3、そしてその後12ヵ月間での更新に含まれる予定です。また、Enterprise版には、RAD Serverの配置ライセンスが含まれています。RAD Serverのアップデートは10.3に含まれる予定で、これは既にベータテストで利用できます。これらの変更はお客様には好評でした。このほかに、まだ改善が可能であると考えている2つの領域があります。

Architect版のアップデート

Architect版について、10.3リリース時にアップデートを実施します。このエディションでは、伝統的に、お客様が弊社のツールファミリー内の他の製品の価値を享受できるものでした。アイデラの製品ポートフォリオは拡大しており、現在提供しているデータモデリングツールよりもお客様のニーズに合致する魅力的な製品があります。現在、データモデリングツールがArchitect版に含まれていますが、10.3リリース時には、以下のものに置き換えられます。

Ext JS Professional: Senchaブランド製品の中でも、最もプロ向けにサポートされているJSコンポーネントとツールです。私たちが実施した調査によると、私たちのお客様の50%以上がDelphiとともにWeb開発向けにJavaScriptを使用するか、使用する予定であると回答しています。Ext JSは、オブジェクト指向開発のアプローチと高い生産性を実現している点で、Delphiといくつかの点で類似しており、開発チームがJSを利用した開発を始めるには、最適な選択肢であると言えます。

RAD Serverマルチサイト配置ライセンス:RAD Studio Enterpriseに含まれるライセンスを拡張し、複数サーバー/ローケーションに対して、RAD Serverを配置できます。これは、RESTベースのモダン多層アーキテクチャーに対する私たちのビジョンを、費用対効果を劇的に高めることで、さらに強化していくものです。

Aqua Data Studio(ADS): SQL/データベースを強力にサポートするデータベース管理/開発ツールです。ADSは、InterBase向けにも使用することができ、まもなくそのサポート機能が強化される予定です。Aquafoldは、アイデラのデータベースツール事業の一部です。

Ranorex Test Automation:Windows開発でとりわけ人気のあるテスト自動化ツールは、新たにDelphi向けのサポートが追加されました。このツールは、大小いずれの規模のチームにも適しています。Ranorexはアイデラのテストツール事業の一部です。

これらは、Architect版の価値の大幅な増加を意味します。現在、価格の更新が必要かどうかを評価中です。これまでのすべての変更と同様に、事前に十分な事前通知をお客様に提供したいと考えています。また、現在のバージョンを購入しておくことで、有効なアップデートサブスクリプションに加入した状態となり、10.3がリリースされた時点で、上記の追加のツールにアクセスできるようになります。

コミュニティとEDNポータルのアップデート

今後数か月の間に来るもう一つの重要な変更は、コミュニティおよびEDNポータルのアップデートです。私は、ほとんどのお客様が、この問題が先延ばしになっていたということに同意されると思います。私たちの目的は、より優れたより標準的なテクノロジーの採用によって、パフォーマンスとユーザビリティの向上を実現することです。独自のツールを継続的に採用するという精神に基づき、新しいEDNはExt JSで構築されます。そのため、拡張とメンテナンスが非常に容易になります。皆さんの認証やアクセスに関して変更がある場合には、特定の通知が送付されますのでご注意ください。新しいEDNでお客様の情報を常に最新に保っていただくことで、弊社のアカウント担当者や販売代理店が常に効果的なコミュニケーションを確保できるようになりますので、ご協力をお願いします。

 

この記事は、Atanas Popovによる General Manager Update for September 2018 の抄訳です。

 

 関連情報


General Manager Update for September 2018

Written by atanas.popov@idera.com on . Posted in News

Atanas PopovAs we start September, I want to provide some important updates around products and product packaging.

Earlier in the year, we simplified our SKUs by including the FireMonkey (FMX) Framework for developing Cross-Platform Apps into all Professional editions. These are also now available to all customers with a Professional license who are on Update Subscription. There are many upcoming changes with iOS, Android, MacOS, etc. that will be included in the upcoming 10.3 release and updates throughout the next 12 months. We also included a single site RAD Server deployment license with all Enterprise licenses. An update to RAD Server will come with 10.3 and is already available for beta testing. Both changes were popular with our customers. We also have two other areas, where we think we can improve.

Architect SKU Update

We will update Architect Edition alongside our 10.3 release. This edition has traditionally allowed our customers to gain value from other products within our family of tools. Idera Inc.’s portfolio has grown and we have some exciting new products that are better aligned with our customer needs than the current data modeling tooling. The data modeling tools are still included with Architect Edition, but will be replaced with the following in our 10.3 release:

Ext JS Professional – the most extensive professionally supported JS components and tooling from our Sencha brand. Our surveys indicate that over 50% of our customer base is using or planning to use JavaScript for Web Development together with Delphi. Ext JS has some similarities with Delphi in its object development approach and high level of productivity, so this should be a great way to start your team’s JS journey.

RAD Server Multi-site Deployment License – allows RAD Server to be deployed on multiple Servers and Locations, extending what is possible with the Enterprise License of RAD Studio. This supports our vision for modern multi-tier REST based architectures that can be highly cost effective.

Aqua Data Studio (ADS) – award winning tools for database management and development with great support for SQL and many more databases. ADS can be used with InterBase with increased support coming soon.  Aquafold is part of Idera, Inc. Database Tools businesses.

Ranorex Test Automation – the best Testing Automation tool, especially popular for Windows development, recently increased Delphi support and can be a great addition for large and small teams. Ranorex is part of Idera, Inc. Testing Tools businesses.

We believe that these represent substantial increase in value for our Architect edition. We are currently evaluating if an update in price is required. As with all changes, we want to provide customers with plenty of advance notice. Further, if you purchase the current version, you will  be current on Update Subscription and once 10.3 is released, you will  have access to the additional tooling described above.

Community and EDN Portal Update

Another important change to come in the next several months is the update to our Community and EDN portals. I am sure that most customers will agree that this is way overdue. Our objective is to improve performance and usability by adopting better, more standard technologies. In the spirit of continued adoption of our own tooling, the new EDN is built with Ext JS, which makes it very easy to expand and maintain. You will receive specific notifications if there are changes to your authentication or access, so please be in the lookout for these. Having your most updated information updated in EDN and with your Account Representative or Reseller Partner always help to ensure effective communications.

 


RAD Studioロードマップ(2018年8月付)

Written by Hitoshi Fujii on . Posted in News

この記事では、RAD Studio プロダクトマネージャーチームによる、Delphi、C++Builder、RAD Studio向けのロードマップアップデートを紹介しています。この2018年8月付けロードマップには、今年後半の計画と来年の主要なフォーカス領域が含まれまています。この記事に加え、ロードマップの解説記事をブログにも掲載しています。併せてご覧ください。


RAD Studio August 2018 Roadmap

Written by Marco Cantu, RAD PM on . Posted in News

With this article the RAD Studio PM team is introducing an updated roadmap for Delphi, C++Builder and RAD Studio. This August 2018 roadmap includes plans for the second part of this year and the key focus areas for next year. Alongside, we have also published an August 2018 Roadmap PM Commentary blog post, with more details and information.

 

 

 

 

 

 

 

 

 

 

 

 


MalyKangurek POSが6月のエンバカデロクールアプリに...

Written by Hitoshi Fujii on . Posted in Articles

数年前、Delphiで書かれたPOS(Point of Sale)システムをメンテナンスしていた会社で働いていたことがあります。私はとある介護施設の投薬管理システムの開発に従事していたため、そのプロジェクトには参加していませんでしたが、プロジェクトに加わっている開発者の何人かと話をすることができました。そこで分かったのは、Delphiはいくつかの産業分野では非常に広く使われており、特にPOSシステムでそれが顕著なのだそうです。ですから、今回、2018年6月のクールアプリにSoftSystem社のMalyKangurek POSが選ばれても、驚くことはありませんでした。

MalyKangurek POSの特筆すべき点は、子供用のプレイグラウンド用に設計され、その特定のビジネスニッチに合わせた機能が備わっていることです。バーコードリーダー、キャッシュドロワー、レシートプリンターなどを利用できる標準的なPOS機能を提供しています。これに加えて、大きなボタンやオンスクリーン入力が可能なタッチスクリーンを利用できるようになっています。

このシステムは、元来Delphi 2009でVCLコンポーネントを利用して作成されていましたが、現在では、最新バージョンのDelphiとFireMonkeyプラットフォームに移行しています。最初のターゲットはWindowsデスクトップでしたが、FireMonkeyへの移植によって、今後はAndroid上でも利用できるようにする予定です。

FireMonkeyのほかにも、データベースアクセス用にFireDAC、そしてDevart SDAC、TMS Softwareコンポーネント、AlphaSkin、FastReport、EurekaLog、CPortも使用しています。

MalyKangurek POSを開発したSoftSystem社のOsmański Przemysławに、どのようにDelphiを活用しているのかを聞いたところ、次のように答えてくれました。

「Delphiは、すばらしいアプリケーション開発環境です。私は、Delphi 2の時代からのユーザーですが、それ以来Delphiは私の作業環境になり、作成したアプリケーションはすべてDelphi製になりました。コンパイルスピード、マルチプラットフォーム向けにコンパイルできることなどが利点です。さらに、ポーランドのDelphiコミュニティは非常に大きく、他のプログラマーにとっても大いに役立つものです。

MałyKangurekの開発では、バーコードリーダー、レシートプリンター、モバイルプリンタ、タイムカウンタなどの外部デバイスについて学ぶことができました。このアプリケーションは、当初、私の妻のビジネスのために作成したのですが、時間とともに、多くの場所で使用されるアプリケーションに成長してきました。ユーザーからの変更要求や機能提案に、Delphiはすばやく対応できました。

しばらく、Visual Studioを使って新しいソフトウェアの開発を行うことがありました。その後、Delphi 10(Seattle、Berlin、Tokyo)は、以前のバージョンと比較して、新しい品質レベルを提供するようになりました。今では、開発ツールの変更について気にする必要はなくなり、慣れ親しんだ開発環境で、クロスプラットフォーム対応の新しいアプリケーションを作成できることを大変喜ばしく思っています。

現在、すべてのソフトウェアをDelphiで開発しています。Webアプリケーションのシームレスな開発を実現するUniGUIなど、Delphiのための新しいソリューションがいくつもあります。すばらしいDelphiを使い続けられるソフトウェア開発の未来について、本当に楽しみにしています。」

MalyKangurek POSの概要は、こちらのビデオでご覧いただけます。

エンバカデロ クールアプリコンテストに応募してみませんか?RAD Studio、Delphi、C++Builderを使用して構築したビジネスアプリケーションやコンシューマアプリケーションのいずれも応募可能です。クールアプリコンテストの受賞者には、500ドル分のAmazonギフトカードを進呈し、エンバカデロのYouTubeチャンネルで公開します。コンテストの詳細については、こちらをご覧ください。

 

この記事は、Jim McKeethによるEmbarcadero's June 2018 Cool App Winner is MalyKangurek POS

 


Moving from Delphi or C++Builder Community Edition to another edi...

Written by Sarina D on . Posted in Support

Note: Community Edition cannot coexist with another edition of the same version on one machine.   
UPGRADING FROM COMMUNITY EDITION TO PRO/ENTERPRISE/ARCHITECT
The following covers the steps required to install Delphi, C++Builder or RAD Studio Professional edition, Enterprise edition or Architect edition if you currently have Delphi or C++Builder Community Edition installed. The steps below assume that you are intending to uninstall Community Edition and install another edition on the same machine.
Step 1: Download the RAD Studio, Delphi, C++Builder Web Installer
Step 2: Run the Web Installer
This will uninstall the Community Edition, and allow you to complete the installation with your new paid license.

MOVING FROM RAD STUDIO TRIAL TO COMMUNITY EDITION
Community Edition cannot coexist with another edition of the same version on one machine.  If you get the following error when trying to install Community Edition (after entering the Community Edition license key), you will need to manually remove all non-Community Edition 10.2 licenses from your system.
Run the License Manager, found in the bin directory (C:\Program Files\Embarcadero\Studio\19.0\bin), click Delete in the License Actions column on the right, select non-Community Edition 10.2 licenses in the pop-up dialog, and click Delete.
 
Next, close the License Manager and launch the IDE to complete the installation of Community Edition.

MOVING FROM COMMUNITY EDITION TO THE RAD STUDIO TRIAL
The following covers the steps required to install the RAD Studio Trial if you currently have Delphi or C++Builder Community Edition installed. The steps below assume that you are intending to uninstall Community Edition and install the trial on the same machine.
Step 1: Download the RAD Studio, Delphi, C++Builder Web Installer
Step 2: Run the Web Installer
This will uninstall the Community Edition, and allow you to complete the installation with your trial license.

MOVING FROM STARTER TO COMMUNITY EDITION
The following covers the steps required to install Delphi or C++Builder Community Edition if you currently have Delphi or C++Builder Starter installed. The steps below assume that you are intending to uninstall Starter and install Community Edition on the same machine.
Step 1: Download the RAD Studio, Delphi, C++Builder Web Installer
Step 2: Run the Web Installer
This will uninstall Starter, and allow you to complete the installation with your free, limited commercial use Community Edition license.

Related Links:
 

Deep Dive: Field Service App Template For Android And iOS With RA...

Written by Eli M on . Posted in Articles

The RAD Server Field Service Template provides an end to end field service application template for routing appointments, managing parts, and user administration. It is made up of a REST server module, a desktop client, and a cross platform mobile client. The template can give you a head start in building your own field service solutions. You can download the template from within the RAD Studio IDE using Embarcadero GetIt.

Introduction

 

The RAD Server Field Service Template utilizes a RAD Server based REST server module for the server side. On the admin side there is a FireMonkey based desktop client for adding, viewing, and managing appointments. Additionally, the admin client allows you to manage parts inventory and do user administration. The offline capable cross platform client app is built in FireMonkey and it can be deployed to Android, iOS, macOS, and Windows. There is a single codebase and single UI. It allows you to view pending and completed appointments, map their locations, and mark them as completed. You can also view parts inventory and receive local notifications when new appointments are synced from the server. Both LiveBindings and FireDAC are used extensively through the Field Service Template to provide a low code solution.

The Field Service Template consists of a RAD Server backend connected to an InterBase database. RAD Service provides REST endpoints which both the Field Service Admin and the Field Service App connect to for performing CRUD operations. Additionally, there is a Field Service Setup app which you will run on the same machine as RAD Server to setup the Field Service Template database and sample data.

  • Field Service Admin

  • Field Service App

  • Field Service Server (RAD Server)

  • Field Service Setup

You should deploy and run the projects in the following order:

 

  1. RAD Server Dev Server needs to be running for the Field Service Setup app to connect to and create the user accounts.

  2. Field Service Setup app will help you set up your database, the tables and data, and your EMS user accounts.

  3. Field Service Server is a RAD Server side REST resource which both the Admin client and the App client interface with. It should be deployable on Windows and Linux through IIS, Apache, or the stand alone RAD Server (EMS) server.

  4. Field Service App is a RAD Studio FireMonkey based client application for Android, iOS, macOS and Windows. The client application should allow you to select a tenant from your RAD Server and then log in as a user. Once logged in it will download the sample appointment and parts data for your current tenant and allow appointments to be completed. Once an appointment is complete it can be submitted back to the server if there is internet access. If the Field Service App is offline it will save the changed data until it is online again.

  5. Field Service Admin is a RAD Studio FireMonkey based client application designed for desktops on Windows and macOS. The Admin app can be used to create and edit appointments, view completed appointments, create and edit parts, and create and edit users.

 

Field Service Setup


Start: Your RAD Server Dev Server should already be setup and running.

Step 1: Set a path for your field service database. Set the path to the EMSServer database.

The Field Service database is created, used, and populated with data in Step 3.

The EMSServer database link is used to populate the drop down of Tenant ID in Step 2.

Step 2: Setup the demo users on the RAD Server using the EMS API.

You will need your EMSServer Host, Port, and Tenant ID in this step. The Setup will connect to your EMSServer and create groups and users for the template. There is a Managers group which can log into the Field Service Admin app and a Technicians group for logging into the Field Service App.

You can create Tenant IDs using this tutorial: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/RAD_Server_Multi-Tenancy_Support#EMS_Multi-Tenant_Console

Step 3: Create the tables and insert the data into your field service database with the Initialize All button.

This step contains the SQL setup queries for the Field Service database. There are three tables which will be set up which are: APPOINTMENTS, PARTS, TECHNICIANS

Each table will be dropped and re-created when the queries are run (any existing data in the tables will be lost). There are also TFDMemTables containing the default data and these are copied into the InterBase tables once they have been created.

Pressing the Initialize All button will execute the SQL queries against your defined Field Service database from Step 1.

Step 4: Optional. View or reset the default data in the Field Service database.

You can view the default sample data that is inserted into the database on this step. Additionally, you could come back later and reset the data in your database with the Reset button to the default data.

Step 5: Setup the IBLite license file for the Field Service App client.

IBLite requires a license file to use. Download it from the Product Registration Portal. You can find out more about doing that here:

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/IBLite_and_IBToGo_Test_Deployment_Licensing

Locate the IBLite registration file that you download from the Product Registration Portal. It may be in your Downloads directory by default. The filename will be similar to regXXXX_XXXXXXXX.txt where the X's are numbers. The file will ultimately need to be named reg_iblite.txt.

Complete: After step 5 the databases and users should be setup and ready for you to use the client and admin areas.

Your EMS database and users should be setup at this point. You should be able to connect the Field Service package to your new field service database and compile the package.

Once your Field Service Server EMS package is running in the RAD Server Development Server you should be able to open and compile the Field Service App client.

 

After you complete some of the appointments via the Field Service App client you should be able to log into the Field Service Admin and see the completed appointments in the Service History.

Field Service Server


The Field Service Server is the RAD Server module for the Field Service App and the Field Service Admin to interface with.

The end points mainly return the FireDAC JSON format which can be easily loaded in to a RAD Studio client or access via standard JSON in a non-RAD Studio environment. FireDAC JSON can be loaded into various FireDAC components like TFDQuery and TFDMemTable using LoadFromStream and LoadFromFile.

Endpoints:

GET fieldservice/appts/:PageId - Returns FireDAC JSON containing the appointments list. For Managers it is all appointments. For Technicians it is only their current day appointments for their user account.

GET fieldservice/parts/:PageId - Returns FireDAC JSON containing the parts list.

GET fieldservice/technicians/:PageId - Returns FireDAC JSON containing the users list. For Managers it is all users. For Technicians it is only their own account.

POST fieldservice/update/appt - Receives FireDAC JSON containing an appointment ID and NOTES for an existing appointment, stores the data, and sets the appointment to completed.

POST fieldservice/appts/0 - Receives FireDAC JSON for creating or editing appointments. Returns FireDAC JSON with the IDs. Only users in the Managers group can use this endpoint. Passing an ID of 0 will create a new record while using an existing ID will edit the existing record.

POST fieldservice/parts/0 - Receives FireDAC JSON for creating or editing parts. Returns FireDAC JSON with the IDs. Only users in the Managers group can use this endpoint. Passing an ID of 0 will create a new record while using an existing ID will edit the existing record.

POST fieldservice/technicians/0 - Receives FireDAC JSON for creating or editing users. Returns FireDAC JSON with the IDs. Only users in the Managers group can use this endpoint. Passing an ID of 0 will create a new record while using an existing ID will edit the existing record.

 

DELETE fieldservice/appts/:Id - Takes the Id to be deleted as the last segment parameter in the URL and deletes the appointment record. Returns JSON. Only users in the Managers group can use this endpoint.

DELETE fieldservice/parts/:Id - Takes the Id to be deleted as the last segment parameter in the URL and deletes the appointment record. Returns JSON. Only users in the Managers group can use this endpoint.

DELETE fieldservice/technicians/:Id - Takes the Id to be deleted as the last segment parameter in the URL and deletes the appointment record. Returns JSON. Only users in the Managers group can use this endpoint.

User Permissions:

User permissions are governed by the {$DEFINE GROUPPERMISSIONS}. You can comment or uncomment this line for dev and live deployments. User permissions are ignored when {$DEFINE GROUPPERMISSIONS} is commented out.

By default there are two Groups setup which are Managers and Technicians.

Different data is returned depending on if the user is in the Managers or Technicians group. Some operations are only allowed by users in the Managers group.

Database Schema:

The FireDAC JSON format is used to pass data back and forth between the server, the Admin client, and the App client. The database schema for the Appointments, the Parts, and the Technicians tables are the same across all four applications. You can save the data from each of the application’s TFDMemTables out to file and load it into each of the other applications.

Field Service Admin


The Field Service Admin project is built in RAD Studio Delphi using FireMonkey (FMX). The Admin app connects to RAD Server on the backend via a REST API. You should be able to log into the Admin area by selecting a Branch ID (Tenant ID) plus entering the login and password for a user in the Managers Group. For this template the default user is manager1.

Be sure to configure the EMS_SERVER and EMS_PORT const in uMainForm.pas to point at your development server. The default is localhost 8080.

The Branch ID is stored with each data table so each branch will only see its own set of appointments, parts, and users. Each branch has its own users and groups as well. The Branch system is built on top of the Tenant functionality in RAD Server.

Appointments

Appointments are records that can be created, viewed, and edited in the Admin client. They can also be assigned to a Technician. Appointments can be viewed and completed in the Field Service App. Appointments have various fields like Appointment date and time, customer title, description, address information, phone number, location, photo, status, and notes. The photo field supports PNGs and JPGs. Addresses can be converted to longitude and latitude using the Locate button utilizing the Google Geocoding API.

 

History

The Service History list is a view into the Appointments and only shows Appointments that have been their status set to Complete. Technicians using the Field Service App submit completed appointments and include notes. The History view utilizes TFDLocalSQL to show only the completed appointments.

 

Parts

Parts are records that can be created, viewed, and edited in the Admin client. They can also be viewed by Technicians. Parts have various fields like title, description, location, quantity, and photo. The photo field supports PNGs and JPGs.

 

Users

Users are records that can be be created, viewed, and edited in the Admin client. They also show up as an individual profile to logged in Technicians. When a user is created in the Field Service database it also creates a shadow user in the RAD Server Users API where their username and password are stored. By default users can be in the Managers Group or the Technicians Group. The Group information is also stored in the RAD Server Groups API and the server accesses the RAD Server User and Group data for the permissions.

 

Data Sync

The Data Sync tab in the Admin client is where JSON data is downloaded from the Field Service Server REST endpoint and loaded up into the various in memory TFDMemTable components. Data for the Appointments, Parts, Users, and Groups is all downloaded on this tab. You can also request to Refresh the data at any time to get new updates from the server. Additionally, there is a background TTimer which will refresh the data from the server automatically on an interval.

Architecture

The architecture of the app is built in a low code rapid application development style using TTabControls for handling pages and individual frames for each page. TActionList is used to consolidate much of the code in the MainForm. There are two TTabControls on the MainForm. The first one contains the Login frame and the second TTabControl. The second TTabControl contains the rest of the frames. Within the ApptsFrame, HistoryFrame, PartsFrame, and TechsFrame there are additional Master/Detail TTabControls.

If you want to make changes to the design time frames be sure to edit the frame itself and not the version of it that is embedded in the MainForm. This will keep your changes consolidated in one place. If your changes don't update in the MainForm you can delete the Frame from the MainForm and re-add it. Be sure to add it to the correct Tab and set to Align Client after you add the frame.

The frames are built to be as modular as possible with TBindSourceDB components used as endpoints for the LiveBindings. This allows you to easily re-use the frames in your own projects by connecting the TBindSourceDBs to your own datasets.

A TFDLocalSQL component is used to provide SQL access to the various TFDMemTables via TFDQuery components. This allows the App to provide query results for filtering some of the datasets.

  • uDataModule in 'uDataModule.pas' {MainDM: TDataModule},
    Contains the RAD Server (EMS) Provider client components, the in memory table components, and the various FireDAC connecting components.

  • uMainForm in 'uMainForm.pas' {MainForm},
    Contains the main form of the application with the various TTabControls and inline embedded TFrames.

  • uLoginFrame in 'uLoginFrame.pas' {LoginFrame: TFrame},
    Contains the UI and code for the Login screen.

  • uApptsFrame in 'uApptsFrame.pas' {ApptsFrame: TFrame},
    Contains the UI and code for the Appointments screen.

  • uHistoryFrame in 'uHistoryFrame.pas' {HistoryFrame: TFrame},
    Contains the UI and code for the History screen.

  • uPartsFrame in 'uPartsFrame.pas' {PartsFrame: TFrame},
    Contains the UI and code for the Parts screen.

  • uTechsFrame in 'uTechsFrame.pas' {TechsFrame: TFrame},
    Contains the UI and code for the Users screen.

  • uProgressFrame in 'uProgressFrame.pas' {ProgressFrame: TFrame},
    Contains the activity progress TFrame which is displayed when the app is busy.

  • uTenantsDM in 'uTenantsDM.pas' {TenantsDM: TDataModule},
    Contains the RAD Server (EMS) Provider connector components for accessing the Branch (Tenants) list.

  • uTenantListForm in 'uTenantListForm.pas' {TenantForm},
    Contains the UI and code for selecting a Branch/Tenant.

  • uQueueFrame in 'uQueueFrame.pas' {QueueFrame: TFrame},
    Contains the UI and code for syncing data from the server.

  • uGroupsListForm in 'uGroupsListForm.pas' {GroupsForm},
    Contains the UI and code for selecting a Group.

  • uTechsListForm in 'uTechsListForm.pas' {TechsForm};
    Contains the UI and code for selecting a Technician to assign to an appointment.

Permissions

The Field Server Admin app will make an additional call after it logs in to download the list of Groups that the current user account is in. It will check to see that the user is in the Managers Group. If the user is not in the Managers Group it will log you back out. There are additional permissions in the Field Server Server which govern what data is sent down to which users as well. Only users in the Managers Group will receive the full data and be able to make changes to it.

Customize The UI

You can quickly and easily customize most of the look and feel of the app with three easy changes. In TMainForm there is a BackgroundRect, a BackgroundImageRect, and a EmeraldDarkStyleBook control. You can change the background color of the app by changing the BackgroundRect.Fill.Gradient property. You can change the image that is overlayed over the entire app by changing the BackgroundImageRect.Fill.Bitmap.Bitmap property. The background image works by being above all of the other controls, having a low Opacity, having a HitTest of False and a Locked property of True. Finally, you can change most of the rest of the theme by loading different Premium Styles into the EmeraldDarkStyleBook control.

You can customize the header logo of the Login screen on the LoginFrame. There are a few other places where the custom green color is used on some elements in the TListView controls and some the search icons using a TFillRGBEffect.

You will need to update the BackgroundRect and BackgroundImageRect in the GroupsListForm, the TechsListForm, and the TenantForm as well. There is a BackgroundImage control in the LoginFrame if want to customize the background of the Login page. Remember that you will need to load one style for each of the four deployment platforms. You can access the Premium Styles here:

https://www.embarcadero.com/products/rad-studio/fireui/premium-styles

https://cc.embarcadero.com/item/30491

Field Service App


The Field Service App client project which is built in RAD Studio Delphi using FireMonkey (FMX). The client is targeted for deployment to Android, iOS, macOS, and Windows. The Field Service App client connects to RAD Server on the backend via a REST API. You should be able to log into the App client by selecting a Branch ID (Tenant ID) plus entering the login and password for a user in the Technicians Group. For this template the default users are technician1 and technician2.

Be sure to configure the EMS_SERVER and EMS_PORT const in uMainForm.pas to point at your development server. The default is localhost 8080.

The Branch ID is stored with each data table so each branch will only see its own set of appointments, parts, and users. Each branch has its own users and groups as well. The Branch system is built on top of the Tenant functionality in RAD Server.

Appointments

Appointments are records that can be viewed in the Field Service App client. When you are logged in as a Technician you will only see appointments assigned to you, marked as pending, and with a date of today. Appointments have various fields like Appointment date and time, customer title, description, address information, phone number, location, photo, status, and notes. You can view a static map of the address of the appointment plus you can press a Locate button to bring up an interactive map of the address. You can also click on the phone number on a mobile device and it will launch the call functionality of the device. Technicians can enter notes about an appointment and mark it as complete. The notes and status change are sent to the server.

 

History

The Service History list is a view into the Appointments and only shows Appointments that have been their status set to Complete for this technician for today. Newly completed records show up in the History tab even if they have not yet been synced with the server yet.

 

Parts

Parts are records that can be viewed in the Field Service App client. Parts have various fields like title, description, location, quantity, and photo. Parts are not editable in the Field Service App but the data does get updated when synced from the server.

 

Profile

The profile section shows the current Technician that is logged into the Field Service App and their various information. You can also choose to disable the local notifications here. Profile information also shows up in the TMultiView menu.

 

Notify

The notify section shows new appointments that have been downloaded from the server that have not yet been viewed by the current technician. Choosing a notification here will take you to the appointment for that notification. Local notifications are also implemented and when new appointments are received local notifications will be sent to the device. The notification functionality is built so that you can implement your own remote notifications using the same system if needed.

 

Data Sync

The Data Sync tab in the Field Service App client is where JSON data is downloaded from the Field Service Server REST endpoint and loaded up into the local IBLite database. Data for the Appointments, Parts, and Technician is all downloaded on this tab. You can also request to Refresh the data at any time to get new updates from the server. Additionally, there is a background TTimer which will upload and sync the completed data from the Field Service App automatically on an interval. A cloud icon will appear in the upper left of the Field Service App when there is data to be synced in the queue.

Architecture

The architecture of the app is built in a low code rapid application development style using TTabControls for handling pages and individual frames for each page. TActionList is used to consolidate much of the code in the MainForm. There are two TTabControls on the MainForm. The first one contains the Login frame and the second TTabControl. The second TTabControl contains the rest of the frames. Within the ApptsFrame and the HistoryFrame there are additional Master/Detail TTabControls.

If you want to make changes to the design time frames be sure to edit the frame itself and not the version of it that is embedded in the MainForm. This will keep your changes consolidated in one place. If your changes don't update in the MainForm you can delete the Frame from the MainForm and re-add it. Be sure to add it to the correct Tab and set to Align Client after you add the frame.

The frames are built to be as modular as possible with TBindSourceDB components used as endpoints for the LiveBindings. This allows you to easily re-use the frames in your own projects by connecting the TBindSourceDBs to your own datasets.

  • uDataModule in 'uDataModule.pas' {MainDM: TDataModule},
    Contains the RAD Server (EMS) Provider client components, the in memory table components, the IBLite tables, and the various FireDAC connecting components.

  • uMainForm in 'uMainForm.pas' {MainForm},
    Contains the main form of the application with the various TTabControls and inline embedded TFrames. Additionally, it includes the TNotificationCenter.

  • uLoginFrame in 'uLoginFrame.pas' {LoginFrame: TFrame},
    Contains the UI and code for the Login screen.

  • uApptsFrame in 'uApptsFrame.pas' {ApptsFrame: TFrame},
    Contains the UI and code for the Appointments screen.

  • uHistoryFrame in 'uHistoryFrame.pas' {HistoryFrame: TFrame},
    Contains the UI and code for the Service History screen.

  • uPartsFrame in 'uPartsFrame.pas' {PartsFrame: TFrame},
    Contains the UI and code for the Parts screen.

  • uProfileFrame in 'uProfileFrame.pas' {ProfileFrame: TFrame},
    Contains the UI and code for the Profile screen.

  • uNotifyFrame in 'uNotifyFrame.pas' {NotifyFrame: TFrame},
    Contains the UI and code for the Notification screen.

  • uProgressFrame in 'uProgressFrame.pas' {ProgressFrame: TFrame},
    Contains the activity progress TFrame which is displayed when the app is busy.

  • uTenantsDM in 'uTenantsDM.pas' {TenantsDM: TDataModule},
    Contains the RAD Server (EMS) Provider connector components for accessing the Branch (Tenants) list.

  • uTenantListForm in 'uTenantListForm.pas' {TenantForm},
    Contains the UI and code for selecting a Branch/Tenant.

  • uQueueFrame in 'uQueueFrame.pas' {QueueFrame: TFrame},
    Contains the UI and code for syncing data from the server.

  • uWebBrowserForm in 'uWebBrowserForm.pas' {WebBrowserForm};
    Contains the UI and code for viewing real time map data in a TWebBrowser.

Offline Caching

The Field Service App is able to work offline once you have logged into your account at least once. The next time you log into the app it will use your previous RAD Server Session ID for any new connections it tries to make to the server. The data from the server is cached as JSON files and stored in the IBLite database. The Appointments are saved as appts.json, the Parts as parts.json, the Techs as technicians.json, and the Tenants as tenants.json. If no connection to the server is available the data will be loaded from those files instead. Additionally, if there is no internet connection it will save the appointments and notes that you have marked completed in the History table of the IBLite database. When the next time an internet connection is detected it will upload those changes.

The Field Service App has a local History table where is stores the local changed state of the Appointments. Even if you re-sync the data from the server and your changes have not been uploaded yet it will apply your existing local changes to this new data until which time it is able to upload the changes to the server.

If you log out of the existing account the local database is deleted until you log in again. If you log out before uploading your changes then you changes would be lost.

Notifications

The local notification functionality built into the Field Service App relies on the cross platform  TNotificationCenter component that is built into RAD Studio. There is a local IBLite Notify table in the Field Server App where it stores the current state of notifications (whether the user has viewed them already and whether they have been sent to the user’s platform).

When a new Appointment is downloaded from the server during a data sync a new record is added to the IBLite Notify table. A notification is sent to the platform through the TNotificationCenter when this happens. The user can view the notification by clicking on the record on the Notify tab. Once a notification is viewed it will no longer be displayed on the Notify tab.

Each platform handles notifications differently. You should be able to hook up remote notifications as well through this existing local notification system.

Customize The UI

You can quickly and easily customize most of the look and feel of the app with three easy changes. In TMainForm there is a BackgroundRect, a BackgroundImageRect, and a EmeraldDarkStyleBook control. You can change the background color of the app by changing the BackgroundRect.Fill.Gradient property. You can change the image that is overlayed over the entire app by changing the BackgroundImageRect.Fill.Bitmap.Bitmap property. The background image works by being above all of the other controls, having a low Opacity, having a HitTest of False and a Locked property of True. Finally, you can change most of the rest of the theme by loading different Premium Styles into the EmeraldDarkStyleBook control.

You can customize the header logo of the Login screen on the LoginFrame. There are a few other places where the custom green color is used on some elements in the TListView controls and some the search icons using a TFillRGBEffect.

The Profile screen for the technician has a background image in the ProfileFrame called HeaderBackgroundRect plus a BackgroundRect control. The Profile is also displayed in the TMultiView control on the MainForm with another control named HeaderBackgroundRect as well. Change the Fill.Bitmap.Bitmap property on both controls.

You will need to update the BackgroundRect and BackgroundImageRect in the WebBrowserForm and the TenantForm as well. Remember that you will need to load one style for each of the four deployment platforms. You can access the Premium Styles here:

https://www.embarcadero.com/products/rad-studio/fireui/premium-styles

https://cc.embarcadero.com/item/30491



Embarcadero's June 2018 Cool App Winner is MalyKangurek POS

Written by Jim McKeeth on . Posted in Articles

 

Years ago I worked at a company that maintained a Point of Sale (POS) system written in Delphi. I wasn’t involved in that project (I was developing a medication management system for an assisted living facility), but talking with some of the developers that were working on it I learned that Delphi is very popular in many different vertical markets, specifically Point of Sale systems. So I’m not surprised to see MalyKangurek POS by SoftSystem as the cool app winner for June 2018.

What makes MalyKangurek POS cool is that it is designed specifically around a children's playground with features designed for that specific business niche. It has all the standard POS features including the ability to work with hardware devices like barcode readers, cash drawers, and receipt printers. Additionally it is designed to work great on a touch screen with nice big buttons and on screen input.

  

 

Originally it was created in Delphi 2009 with VCL components, and now it is transferred to the latest Delphi and the FireMonkey platform. It started out targeted the Windows desktop, but now that it is migrated to FireMonkey there are plans to make it available on Android in the future.

Beyond FireMonkey it also makes use of FireDAC for database access, Devart SDAC, TMS Software Components, AlphaSkin, FastReport, EurekaLog, CPort.

When I asked Osmański Przemysław of SoftSystem, the developer of MalyKangurek POS to tell me more about his use of Delphi he said the following:

"Delphi is a great environment for creating applications. I started to play with Delphi in the days of Delphi 2. Later Delphi became my work environment and all the applications I created were created in Delphi. For many years Delphi was the only real visual tool for creating applications. Its advantages are the speed of compilation and the ability to compile to different platforms. In addition, the Delphi community in Poland is very large and helpful to other programmers.

In developing MałyKangurek I learned about external devices such as barcode readers, receipt printers, fiscal printers, time meters etc.The application was written for my wife and her business, but with time it has become an application used in many places. As users made suggestions Delphi made it very quick and easy to make changes and features.

For a while I started developing some of my new software in Visual Studio. Then Delphi 10 (Seattle, Berlin and Tokyo) brought new quality when compared to earlier versions. Now I do not have to worry about changing development tools, and I can devote myself to the pleasure of writing a new cross-platform version of the application in an environment that i know well and like.

Now all my software is developed with Delphi. There are so many new solutions for Delphi, such as UniGUI which allows for seamless development of web applications. I look forward to the future of development with Delphi that will allow me to continue to work with the pleasure that I’ve had so far."

Watch MalyKangurek POS video in action here:

 

Interested in submitting for the Embarcadero’s Cool App contest? It’s open to any business or consumer application built with RAD Studio, Delphi or C++Builder. Embarcadero awards Cool App contest winners a $500 Amazon gift card and winning submissions are also highlighted on the company’s YouTube channel. For more information on the contest and a link to the submission form click here.


GitHub買収はRAD Studioにとってどのような意味を持...

Written by Hitoshi Fujii on . Posted in Articles

マイクロソフトが6月4日に発表したGitHubの75億ドルでの買収は、開発者コミュニティの大きな関心を集めています。Hacker Newsでは、Redditと同様、さまざまな反応が見られました。Twitter上では、いくつかのスレッドが続いています。Motherboardによれば、オープンソースの競合Gitlabでは1週間で5万プロジェクトが移行してきたといいます(オープンソース企業がマッチする方は、Gitlabのダッシュボードにアクセスすれば、一気に増加してきたGitlabへの移行状況を確認できます。#movetogitlabが本件に関するハッシュタグです)。Reutersによれば、マイクロソフトはこれまで永くとってきたスタンスとは異なり、これをあまり問題視していないようです。この買収に関連するSatya Nadella氏のブログ記事では、GitHubをオープンにし続けることを約束しています。多くの視点は非常にポジティブです。

このことは、RAD Studioや皆さんにとって、どういう意味があるのでしょうか?

Github vs git

GitはGithubではありません。これは重要な点です。Gitはバージョン管理システムであり、Githubはそれを容易に使えるようにしたWebサイトです。

RAD Studioには、SubversionとMercurialと同様に、gitサポートが組み込まれています。RAD StudioでGithubのプロジェクトを使用し、SourceTreeのようなgitクライアントを使用する場合、Github特有のものは何もなく、gitのみです。

つまり、RAD Studioは、Githubをサポートするだけでなく、セルフホスト型、リモートホスト型、Gitlabなど、あらゆるgitシステムをサポートしています。

私たちが2017年4月に実施した開発者向け調査では、一部の開発者はソース/バージョン管理システムをまったく使用していない実態が明らかになりました。プロジェクトでは、バージョン管理システムを使用することを強くお勧めします。その理由について説明したすばらしい記事はこちらです。Subversion、git、Mercurialのどれを選択してもかまいませんが、いずれにしても何らかのソース/バージョン管理システムを使用するべきです。RAD Studioには、これらのバージョン管理システムのサポート機能が搭載されているほか、プラグインで他のシステムもサポートできます。インストール後に初めて起動した際に表示される一連のダイアログで、使用するソース/バージョン管理システムのフロントやセンターを設定できます。

偶然、私たちのスタッフの一人から、Atlassianがgitを学ぶための無料コースを提供していることを、今日メールで知らされました。

オープンソースに対するマイクロソフトのアプローチ

買収に関する懸念を表明するほとんどのコメントでは、過去の行動を理由にマイクロソフトに不信感を抱いているようです。マイクロソフトのCEO、Satya Nadella氏は、自身のブログ記事でこれを認めているようです。

「オープンソースへの私たちのコミットメントについては、私たちのごく最近の行動、現在の行動、そして将来の行動によって判断してください。」

開発者がマイクロソフトの歴史に対して懸念しているのは、Githubだけではありません。多くの人にとって、今回のできごとは90年代から2000年代初期の方針、そして過去の反オープンソースの方針を想起させるのです。しかし、これらはここ数年の間に、根本的な変化がありました。実際、マイクロソフトはオープンソースを採用しており、クロスプラットフォームへと拡張し、Xamarinの買収、Visual Studio Codeのリリース、Windows内でのLinuxサポートの提供を行い、gitを内部で使用するとともに、コミュニティへの貢献も果たしています。Githubの買収は、最近の傾向に沿ったものです。

そして、Githubは出口戦略を必要としていました。こちらのArs Technicaの記事によれば、3億5,000万ドルの投資と明らかに高い金利に加え、ホスティングのためだけに開発者に課金することを拒否した結果(これは賞賛に値することですが)、何らかの買収を求める結果となったのです。Githubの買収によりGithubを救済できるので、その結果、開発者コミュニティ全体に大きな利益をもたらすこととなります。

開発者

Githubの買収は、オープンソースに関することがらにはとどまりません。以下に引用したStratcheryの分析によれば、実際のところ、これは顧客獲得に関する買収であるといえるのです。

「これはGitHubの買収についての考え方です。開発者を引き付けるのに十分なユーザーがいるプラットフォームがないため、マイクロソフトは優れたツールの提供によって開発者を直接獲得しなければなりませんでした。しかし、すぐれたクラウドサービスであるGitHubを用いることで、そのネットワーク効果は劇的に高まります。問題は、ユーザーの利便性を欠いたこのような方法で開発者を獲得することは、非常に高コストであるということです。実際、GitHubがこれまで生み出してきた利益が、この買収価格を正当化するようなものであると考えるのには相当無理があります。」

Satella氏は、Githabの今後について、次のように強調しています。

「開発者ファーストのスタンスを維持し、独立したオペレーション、オープンプラットフォームを維持します。」

マイクロソフトは、結果としてGithubの2800万人のユーザー、オープンソースで提供されたユーザー情報、オープンソースのサポーターとしてのネットワーク効果をも獲得しています。

RAD StudioとGit

RAD Studioにとって、また皆さんにとってこれはどのような意味があるのでしょうか?

RAD Studioでは、Githubを含むgitリポジトリをRAD Studio内で使用できるようにサポートしています。

Githubは、DelphiC++Builderの多くのユーザーによって、オープンソースプロジェクトのホスティングに利用されています。私たちもこうした利用を推奨しており、その結果、DelphiやC++Builderのプロジェクトが共有され、利用可能になります。

エンバカデロもGithubアカウントを所持しています。まだ私たちのすべての資料がオンラインになっているわけではありませんが、部分的にSourceForgeからGithubへの移行を進めており、今回の買収によっても、その計画を変更する考えはありません。

まとめ

今回のGithabの買収は、Delphi開発者C++Builder開発者を含む、開発者のエコシステムの中核部分であるGithubの支援につながると考えており、大変エキサイティングなできごとであると捉えています。

エンバカデロが使用しているGithubアカウントについては、こちらのページをご覧ください。

締めくくりにあたり、git、Github、Gitlab、あるいは別のホスティングサービスのいずれでも構いませんが、ソースコントロールを使用することを強くお勧めします。RAD Studioは、gitを含む主要なバージョン管理システムを幅広くサポートした開発ツールであり、ぜひ、そのうちのひとつを使用するようにしてください。

 

この記事は、David MillingtonによるWhat does the GitHub acquisition mean for RAD Studio?の抄訳です。

 


BVS Solitaire Collectionが5月のエンバカデロクールア...

Written by Hitoshi Fujii on . Posted in Articles

カードゲームの愛好家であれば、誰もがソリティアを知っています。技術がどれほど進歩しても、それは遊び続けられるゲームです。それゆえ、今回BVS Developmentによる「BVS Solitaire Collection」が2018年5月のクールアプリに選出されたことは、大変うれしいことです。このアプリは、ソリティアカードゲームの多機能コレクションで、510以上のバリエーションが含まれています。

古くからあるSpider Solitaire、FreeCell、Pyramidなどのゲームのほかに、ほかにはないオリジナルのバリエーションが用意されています。どのゲームのルールも変更できるため、独自のバリエーションを簡単に作成することもできます。魅力的でスムーズに拡張できるカードプレイ、完全にカスタマイズ可能なゲームの外観、総合的な統計情報を使用したパフォーマンス測定機能が備わっています。Windows版のアプリは多くのユーザーを獲得し、映画「ドラゴン・タトゥーの女」(2011)でも紹介されました。

BVS Solitaire Collectionは、DelphiでFireMonkeyを利用して構築されています。iOS、MacOS、Windows上で動作します。BVS Development CorporationのBoris氏は、Delphiでの経験を次のように語っています。

「Delphiは、Object Pascalの柔軟性と、強力かつ便利な開発環境の両方の理由から選択されました。私はObject Pascalコードの美しさと高い可読性が気に入っています。編集、コンパイル、デバッグの開発サイクルでは、非常に高速なDelphiコンパイラのおかげで、開発作業が効率化され、生産性が大幅に向上します。また、Object Pascalは、C++よりも言語構造が単純かつ安全で、コードの生産性とメンテナンス性の双方が向上します。Delphiは、クロスプラットフォームアプリケーション開発に対応した、市場で最も優れた統合開発環境のひとつであるといえます。」

BVS Solitaire Collectionビデオの視聴はこちら

エンバカデロ クールアプリコンテストに応募してみませんか?RAD Studio、Delphi、C++Builderを使用して構築したビジネスアプリケーションやコンシューマアプリケーションのいずれも応募可能です。クールアプリコンテストの受賞者には、500ドル分のAmazonギフトカードを進呈し、エンバカデロのYouTubeチャンネルで公開します。コンテストの詳細については、こちらをご覧ください。

 

この記事は、Jim McKeethによるBVS Solitaire Collection is Embarcadero Cool App Winner for Mayの抄訳です。


Check out more tips and tricks in this development video: