RAD Studioアプリケーションとバックエンドシステムを接続する
第32回 エンバカデロ・デベロッパーキャンプ

株式会社エンハンサー
代表取締役 藤田 和宏

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

アジェンダ バックエンドシステムの状況
 ポストモダンERP DEMO(ソースコード解説と、実機と接続してのデモを⾏います)• DEMO概要• SAPシステムとの接続• データの抽出• データ登録• SAPジョブ実⾏• BWデータロード実⾏• BWデータロードモニタ

 当社製品のご紹介 (時間が残れば)本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2

バックエンドシステムの状況

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

3

バックエンドシステムの状況
 システムの乱⽴ プロセスの分断
 過度のカスタマイズによるレガシー化
 機能の陳腐化

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

4ポストモダンERP

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

5

ポストモダンERP

Postmodern ERP

Postmodern ERP is a technology strategy that automates and links administrative and operational businesscapabilities (such as finance, HR, purchasing, manufacturing and distribution) with appropriate levels ofintegration that balance the benefits of vendor-delivered integration against business flexibility and agility. Thisdefinition highlights that there are two categories of ERP strategy: administrative and operational.

Administrative ERP Strategy. This focuses on the administrative aspects of ERP, primarily financials, human capitalmanagement and indirect procurement. Some industries don’t need operational capabilities, such as
manufacturing or distribution, so they focus their ERP strategy on administrative functions, perhaps augmented
by some industry-specific functionality (such as grant management in the higher education and public sectors,
or project resourcing, billing and costing in professional services). These industries are generally characterized asservice-centric industries.

Operational ERP Strategy. Organizations in manufacturing, distribution, retail, etc. (sometimes referred to as
product-centric industries) are likely to extend their ERP strategy beyond administrative functions into
operational areas, such as order management, manufacturing and supply chain, to maximize operational
efficiencies. Also, asset-intensive organizations, such as utilities and mining, may include operations andmaintenance of assets in their ERP strategy. These organizations can realize benefits from the integration
between administrative and operational capabilities, for example, where operational transactions that have afinancial impact are reflected directly in the financial modules.
出典︓ガートナー「 Gartner IT Glossary > Postmodern ERP」
http://www.gartner.com/it-glossary/postmodern-erp/

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

6

ガートナー社プレスリリースより引用
ガートナー プレスリリース「ガートナー、2018年末までに、ポストモダン・アプリケーション統合戦略を持たない企業は90%に上るとの⾒解を発表」2016年3月9日 https://www.gartner.co.jp/press/html/pr20160309-01.html
ガートナーのリサーチを基にエンハンサーにて図表を作成

2018年末までに、ポストモダン・アプリケーション統合戦略を持たない企業は90%に上る

ERPアプリケーションのポートフォリオが複雑化するのに伴い、ポストモダン・アプリケーション統合戦略へのニーズが高まる

2017年までに、IT部門の75%は、バイモーダルな対応⼒を備えるようになるが、そのうち半数は作業に混乱を来し、ERPソリューションをリスクにさらす

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2018年までに、企業は、実2018年まで、企業の80%はポストモダンERP戦略を順調に実⾏する能⼒を⽋く証された価値を2年以内に提示するポストモダンERPプロジェクトの展開を求めるようになる

7

DEMO概要
 DelphiでSAPシステムと連携する方法

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

8

DEMOで想定するシステム構成

Mobile / IoT / Cloud / BigData…

Delphi Application

SAP ERP / SAP BW

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

9

DEMOで想定する通信本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

10

DEMOで使用するポートC:¥Windows¥System32¥drivers¥etc¥services
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

11

DEMOの範囲
 デモシナリオ• SAPシステムへのログオン−

DEMO SAPシステムとの接続 1, 2

• SAP ERPからデータを取得・加工−

DEMO データ抽出 1, 2

• 加工したデータをSAP ERPに登録−

DEMO データ登録• SAP ERPのジョブを実⾏−

DEMO SAPジョブ実⾏• SAP BWにデータをロード−

DEMO BWプロセスチェーン実⾏• ロード状況を監視−

DEMO BWデータロードモニタ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

12

DEMO環境準備

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

13

DEMO環境準備

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

14

DEMO環境準備
 SAP サーバ インストール

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

15

SAP サーバ インストール
 ライセンスをお持ちであることが前提です••••Partner Edge
SAP Open Ecosystem Program
Developer & Trial Editions･･･

 インストールメディアはSAP Support Portalからダウンロードしてください

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

16

SAP サーバ インストール
 sapinstを実⾏し、少しパラメータを⼊⼒して待てばインストール完了• Installするだけなら難易度は低い• 本稼動に耐えられる設定は難しい• インストールには12〜24時間ほどかかる(16core 32GB)• お試し環境であれば、IDES版がお勧め(組織や品目等の設定がされている)本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

17

DEMO環境準備
 SAP Front Endインストール

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

18

SAP Front End インストール
 Setupを実⾏するだけ…
• 通常はBASISチームから指示された場所にあるSetupを実⾏するだけだと思います。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

19

SAP Front End インストール
 SAP Front Endインストール時の注意点• 多くの場合、「SAP GUI for Windows7.40」を選択しインストールしていると思います• 実はこの階層の下には…

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

20

SAP Front End インストール
 SAP Front Endインストール時の注意点• 「Unicode RFC Libraries」というものが含まれています• 今回説明する方法では、このライブラリを使用します

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

21

DEMO環境準備
 RAD Studio 設定

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

22

RAD Studio 設定• 「Unicode RFC Libraries」を使用するため、「コンポーネントのインポート」を⾏います本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

23

RAD Studio 設定• 今回の説明は「Active Xコントロールの取り込み」で進めます

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

24

RAD Studio 設定• ⼤量のコントロールから選択することになるのですが…
• 右上の検索で絞込みができます

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

25

RAD Studio 設定• 検索に sap logon と⼊⼒します• 以下に絞り込まれます••

SAP Logon Control
SAP Logon Unicode Control• ご使用の環境に合わせて、Unicode版、Non Unicode版を選択してください

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

26

RAD Studio 設定• パッケージページ名、ユニットディレ
クトリ名等を指定します。
• 今回の説明では初期値のまま進めます

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

27

RAD Studio 設定• ユニットをどのように作成するか指定します。
• 今回の説明では「ユニットの作成」を指定します。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

28

RAD Studio 設定• コンポーネントの登録を再度実⾏します• 検索に sap remoteと⼊⼒します• 以下に絞り込まれます••

SAP Remote Function Call Control
SAP Remote Function Call Unicode Control• ご使用の環境に合わせて、Unicode版、Non Unicode版を選択してください

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

29

RAD Studio 設定• コンポーネントの登録を再度実⾏します• 検索に sap bapiと⼊⼒します• 以下に絞り込まれます••

SAP BAPI Control
SAP BAPI Unicode Control• ご使用の環境に合わせて、Unicode版、Non Unicode版を選択してください

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

30

RAD Studio 設定• 作成されたUnitは、プロジェクトに追加して使用します

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

31

DEMO環境準備
 Application 設定

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

32

Application 設定
 参考（使い方）• 新規のDelphiプロジェクト作成• VCLフォームアプリケーション

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

33

Application 設定
 参考（使い方）• 作成されたUnitをプロジェクトに追加• 適当なコンポーネントを配置• 使用するUnitを追加

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

34

DEMO SAPシステムとの接続 1

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

35

DEMO [SAPシステムとの接続 1]

ログオン

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

36

DEMO [SAPシステムとの接続 1]
TSAPLogonControlConnection• ERPやCRM、BW等に• ERPやCRM、BW等とログオンするオブの接続状況とパラ

ジェクト

メータを保持するオ

接続／切断
• 接続
• Connection.Logon(0, false)• 切断• Connection.LogOff;

ブジェクト• 接続後はすべてのパラメータが読み取り専用変更されます
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

37

DEMO [SAPシステムとの接続 1]
var
SAPLogOnCtrl: TSAPLogonControl;
Connection: Variant;// 接続の設定
Connection := SAPLogOnCtrl.NewConnection;// ログオン
if Connection.Logon(0, false) = true thenbegin … end;// ログオフ
Connection.LogOff;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

38

DEMO

ログオン
認証画面あり本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

39

DEMO SAPシステムとの接続 2

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

40

DEMO [SAPシステムとの接続 2]

ログオン

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

41

DEMO [SAPシステムとの接続 2]Connection•接続先の情報を設定します•ApplicationName•System•ApplicationServer•SystemNumber•MessageServer•GroupName•TraceLevel•RFCWithDialog•Client•User•Password•Language

IsConnected•tloRfcNotConnected•未接続の状態•tloRfcConnected

Connection.Logon(0, true)•サイレントログオン、ダイアログ表示を切り替えます•接続状態•TloRfcConnectCancel•ログインダイアログでCancel•tloRfcConnectParameterMissing•サイレントログオンのパラメータ誤り•TloRfcConnectFailed•接続失敗。LastErrorで追加情報を参照。

•接続状態確認•IsConnected

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

42

DEMO [SAPシステムとの接続 2]// 接続の設定
Connection := SAPLogOnCtrl.NewConnection;// ログオン情報設定
Connection.ApplicationServer := ‘APSERVER’;
Connection.SystemNumber:= ‘00’;
Connection.Client:= ‘100’;
Connection.System:= ‘SID’;
Connection.User:= ‘USERNAME’;
Connection.Password:= ‘PASSWORD’;
Connection.Language:= ‘EN’;// サイレントログオン
if Connection.Logon(0, true) = true thenbegin … end;// ログオフ
Connection.LogOff;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

43

DEMO

ログオン
認証画面なし本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

44

DEMO データ抽出1

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

45

DEMO [データ抽出 1]

データ抽出

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

46

DEMO [データ抽出 1]

TSAPFunctions

RFC_READ_TABLE

パラメータ設定•ERPやCRM、BW等のリモート実⾏可•任意のテーブルのデータを取得する汎能汎用モジュールを実⾏します。

用モジュールです。

•Funct.exports('QUERY_TABLE').value:= ‘T001’;•T-code:SM37「属性」タブの処理タイプが「リモー•取得する項目、⾏数などを簡単に設定

ト可能モジュール」となっている汎用モジュールが使用可能できます。

•ここではRFC_READ_TABLEの取得対象のテーブルを指定するパラメータを設定します•取得できるレコード⻑、型の制限などがあるため使用には注意が必要です。
詳しくはNote:382318を参照。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

47

DEMO [データ抽出 1]// 使用する接続の設定
SAPFunct.Connection := Connection;// 汎用モジュールを設定
Funct := SAPFunct.add('RFC_READ_TABLE');// パラメータ設定
Funct.exports('QUERY_TABLE').value := ‘T001’;// 汎用モジュール実⾏
Funct.call// 結果取得
Table := Funct.tables.item(‘DATA’);for Row := 1 to Table.RowCount do
begin… = Table.value(Row,1);
end;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

48

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

49

DEMO データ抽出2

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

50

DEMO [データ抽出 2]

データ抽出

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

51

DEMO [データ抽出 2]
テーブル型パラメータの使用

テーブル型への値設定• Options :=Funct.tables.item('OPTIONS');• Options.Rows.add;• Options.value(Row, ‘TEXT’) :=ʻ値ʼ• バリアント型に代⼊

テーブル型からの値取得• Table :=Funct.tables.item(‘DATA’);• バリアント型に代⼊• for Row := 1 toTable.RowCount do
begin… = Table.value(Row,1);
end;• ⾏番号と列を指定してデータを抽出します。列は名称でも指定可能です。
• ⾏番号は「1」からです

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

52

DEMO [データ抽出 2]// 使用する接続の設定
SAPFunct.Connection := Connection;// 汎用モジュールを設定
Funct := SAPFunct.add('RFC_READ_TABLE');// パラメータ設定
Funct.exports('QUERY_TABLE').value := ‘T001’;// テーブル型へのパラメータ設定
Options := Funct.tables.item('OPTIONS');for Row := 1 to MemoOptions.Lines.Count do
begin
Options.Rows.add;
Options.value(Row, 'TEXT') := MemoOptions.Lines[Row - 1];
end;// 汎用モジュール実⾏
Funct.call
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

53

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

54

DEMO データ登録

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

55

DEMO [データ登録]

データ登録

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

56

DEMO [データ登録]
BAPI_MATERIAL_SAVEDATA• 品目を登録する汎用モジュールです。

パラメータ設定• 今回は以下4つのパラメータを使用します。
• Header• ClientData• ClientDataX• MaterialDescription

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

57

DEMO [データ登録]
Begin// 汎用モジュールを設定
Funct := SAPFunct.add('BAPI_MATERIAL_SAVEDATA');// パラメータ設定
Header := Funct.exports('HEADDATA');
ClientData := Funct.exports('CLIENTDATA');
ClientDataX := Funct.exports('CLIENTDATAX');
MaterialDescription := Funct.tables.item('MATERIALDESCRIPTION');
Header.Value['MATERIAL'] := ‘Material Number’...
ClientData.Value['MATL_GROUP'] := ‘Material Group’ClientDataX.Value['MATL_GROUP'] := 'X';// Material Group
MaterialDescription.Rows.add;
MaterialDescription.value(1, 'LANGU') := 'EN';
MaterialDescription.value(1, 'LANGU_ISO') := 'EN';
MaterialDescription.value(1, 'MATL_DESC') := ‘Description’;end;
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

58

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

59

DEMO SAPジョブ実⾏

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

60

DEMO [SAPジョブ実⾏]

SAPジョブ実⾏

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

61

DEMO [SAPジョブ実⾏]

登録済みのジョブを実⾏

XBPにログオンして実⾏します

使用する汎用モジュール•事前にSM36でジョブを定義します。

•汎用モジュールを単純に事項するだけ•プログラムでジョブをコピーし、実⾏では動きません。

します。

•以下エラーが発生したときは、ログオ•BAPI_XMI_LOGON•BAPI_XBP_JOB_COPY•BAPI_XBP_JOB_START_IMMEDIATELY•BAPI_XMI_LOGOFF•新規にジョブを登録することもできまン処理を確認してください。

す。

Not logged on in interface XBP

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

62

DEMO [SAPジョブ実⾏]
begin
Funct := SAPFunct.add('BAPI_XMI_LOGON');
Funct.exports('EXTCOMPANY').value := 'ENHANCER';
Funct.exports('EXTPRODUCT').value := 'DEVCAMPDEMO';
Funct.exports('INTERFACE').value := 'XBP';Funct.exports('VERSION').value := '1.0';
Funct.call;
Funct := SAPFunct.add('BAPI_XBP_JOB_COPY');…
Funct := SAPFunct.add('BAPI_XBP_JOB_START_IMMEDIATELY');…
Funct := SAPFunct.add('BAPI_XMI_LOGOFF');
Funct.exports('INTERFACE').value := 'XBP';Funct.call;end;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

63

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

64

DEMO BWデータロード実⾏

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

65

DEMO [BW データロード実⾏]

BWデータロード実⾏

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

66

DEMO

[BW データロード実⾏]

登録済みのプロセスチェーンを実⾏• 事前にRSPCでプロセス使用する汎用モジュール• RSPC_API_CHAIN_START

チェーンを定義します。
• バックグラウンドで実⾏されます。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

67

DEMO [BW データロード実⾏]
begin…
// BW Process Chain Start
Funct := SAPFunct.add('RSPC_API_CHAIN_START');
Funct.exports('I_CHAIN').value := 'YPC0002';
Funct.exports('I_SYNCHRONOUS').value := 'X';
if not Funct.call then
begin
ShowMessage(Funct.exception)
endend;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

68

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

69

DEMO BWデータロードモニタ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

70

DEMO [BW データロードモニタ]

BWデータロードモニタ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

71

DEMO

[BW データロードモニタ]

登録済みのプロセスチェーンを実⾏使用する汎用モジュール•事前にRSPCでプロセスチェーンを•RSPC_API_CHAIN_GET_STATUS定義し、実⾏します。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

72

DEMO [BW データロード モニタ]
begin// BW Process Chain Start
Funct := SAPFunct.add('RSPC_API_CHAIN_GET_STATUS');
Funct.exports('I_CHAIN').value := 'YPC0002';
Funct.exports('I_LOGID').value := EditLogId.Text;
if not Funct.call then
begin
ShowMessage(Funct.exception)
end;
EditResult.Text := Funct.imports('E_STATUS').value;end;

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

73

DEMO

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

74

まとめ

バックエンドシステムの状況

システム連携の重要性Delphiで簡単にSAP連携が可能

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

75

弊社製品ご紹介

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

76弊社製品ご紹介

もとは、⾃社業務の効率化目的で開発。
詳細設計書を⾃動生成します。
他分野ではよくあるツールですが。。。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

導⼊事例(事例紹介許可ありのみ)••••

株式会社日⽴システムズ様
プロジェクト名︓
プロジェクト期間︓
概要︓

株式会社日⽴製作所様 hi-fronts BW 国内
2015/12
グループ会社向け BW開発、仕様書の可視化••••

株式会社日⽴システムズ様
プロジェクト名︓
プロジェクト期間︓
概要︓

株式会社日⽴製作所様 hi-fronts BW 海外
2015/07 〜 2015/11
グループ会社向け BW開発、仕様書の可視化••••

株式会社日⽴システムズ様
プロジェクト名︓
プロジェクト期間︓
概要︓

株式会社ドーム様SAPシステム運用保守支援
2013/07 〜 2013/09
SAPシステム運用保守支援。仕様書の可視化、改善・追加構築対応••••

株式会社日⽴システムズ様
プロジェクト名︓
プロジェクト期間︓
概要︓

旭硝子株式会社様DWHシステム構築
2011/05 〜 2012/03
バックエンド SAP BW、フロントエンドSAP BOによるBIシステム構築

77自己紹介会社私• 名前
株式会社エンハンサー• URL
http://www.enhancer.co.jp• 主な事業 SAP社パッケージ導⼊支援
SAP社パッケージ連携システム開発
アミューズメント業界向けパッケージ開発
臨床検査関連システム開発
••••

名前
役職
EmailFacebook

• 略歴

1994年
1996年
1997年
2002年
2006年
2010年

藤田 和宏
代表取締役
kazuhiro.fujita@enhancer.co.jp
https://www.facebook.com/kazuhiro.fujita.92
パソコン通信にはまる
Turbo Pascalに出会い初の業務アプリ開発
Delphiに出会い、開発の容易さに驚愕
C++Builderに出会い、さらに驚愕
DWH導⼊支援
⾃社パッケージリリース
法人成り

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

78

THANKS!
www.embarcadero.com/jp
第32回 エンバカデロ・デベロッパーキャンプ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

79