2006年10月21日

FMStudio

FX.php のメーリングリストへの投稿によると、FMWebschool より "FMStudio" というWebデベロッパー向けツールが来週リリースされるとのこと。

投稿によれば、FMStudio は Adobe DreamWeaver MX/8 に統合された形で動作し、FX.php または FileMaker API for PHP を利用したウェブサイトを作るためのツールです。

投稿で紹介された2本のデモムービーによると、データベースからスキーマ(テーブル構成やフィールド一覧などの情報)を読み込んできて、読み込んできたスキーマからフィールド名を DreamWeaver の HTML 編集画面に埋め込んだりできます。もちろん、データベースに接続しての動作テストもできます。

もう何年も前に WebObjects をかじったときに、EOModelerでデータベースからスキーマを読み込み、フィールドを HTML にグラフィカルエディタで割り付けすると、データベースアクセスのコードが生成されるのが便利だな〜と思いましたが、FMStudio はそれを彷彿とさせる開発環境です。

[2006-10-22 追記]
先ほど正式にリリースされました。価格は$149.99、10/23までは$119.99とのこと。
http://www.fmwebschool.com/fmstudio.php

デモムービーはこちら。
簡単な機能紹介。
http://www.fmwebschool.com/movies/fmstudio/fmnew/fmnew.html
ログイン機能の実装例。
http://www.fmwebschool.com/movies/fmstudio/login/login.html


[2006-10-23 追記]
ポータルのデータを表示するデモムービーが追加されました。
http://www.fmwebschool.com/movies/fmstudio/portal/portal.html


posted by Kojima at 08:31| Comment(30) | TrackBack(0) | 情報 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
今やってる案件用に、ざっとFX.php用のスケルトンを吐き出すツールをFX.phpで作ったんですが、そんな感じでしょうか。自動Validate付きフォームの生成なんか組み込めるといいなあと思ってたんですが、これはどの程度のものなんでしょうか。

一緒にやったWebプログラマーが一人、FileMakerにはまりました。コンテストに出すって息巻いてます。
Posted by 21 at 2006年10月23日 13:41
21さん、いつもありがとうございます。

実物を見ていないので推測になりますが、find/edit/delete 程度のフレームワークは持っているように見えます。Form validation はどうかな? 私の見たムービーには出てきませんでした。

当方でも私の担当したシステム以外は SQL で動いていますが、プロジェクト管理のように頻繁にプロセスやデータ項目が変化するものについては、FileMaker の方が柔軟に対応可能であると、社内でも認識されつつあります。
Posted by Kojima at 2006年10月23日 14:29
デモムービー、見ました。さくさくですね。
それでもどうにも馴染めそうにないのは、Dreamweaverをフロントエンドに使ってるからでしょうか。ああ、Eclipseなら良かったのに。コードの生成がValidate Form、ネストループなテンプレート辺りまで対応してたら、間違いなく買うんだけどなあ。

私の周辺のFileMakerユーザーに一致してる意見は、「とりあえず動きゃいいんだよ、毎日改良するんだから」ってなシステムには最適だという事。そして、本当に重要な数字の計算は止めとけって事。
だから、ふとかかった病院で医者が自家製FileMakerDBで管理をしてたりすると、嬉しい半面、ちょっとどきどきします。
Posted by 21 at 2006年10月23日 19:14
はじめまして、ファイルメーカーSA8を使用して数ヶ月の素人です。質問なんですが、Dreamweaver8+FMSA8でもちろん日本語版なんですがこのFMstudioって使用可能なんですか??
Posted by tarou at 2006年10月27日 09:39
tarouさん、

なるほど、評価版が公開されていないので試すことが出来ませんが、気になるポイントですね。

想像に過ぎませんが、データベースのテーブル名やフィールド名に日本語を使っていなければ、まず問題ないでしょう。
Posted by Kojima at 2006年10月27日 09:58
ご返事ありがとうございます。
当方、PHPが始めてでxsltも理解に苦しいです。
Dreamweaver8でファイルメーカーとの接続を行いたいのですが、さまざまなサイトを検索を行っても自分のほしい情報はないのが現状です。
FX.phpについて詳しく説明してもらっているような情報が欲しいです。
そこで、FMstudioはこれはっていうソフトでした。
いろいろ書き込みすいません。
Posted by tarou at 2006年10月27日 10:39
tarouさん、

FMStudio を使うにしても、FX.php ないし FileMaker PHP API を理解することは避けて通れません。

FX.php はダウンロードされましたか? パッケージの中にサンプルデータベースとアプリケーションが含まれています。これが理解に一番役立つのではないでしょうか。まず動かしてみる。そして同じくパッケージに含まれているドキュメントを見ながら、基本機能を一つずつ確認してみることをお勧めします。

ドキュメントの英語も難しい表現はありません。サンプルアプリケーションのコードにもコメントが詳しく入っています。ぜひチャレンジしてみてください。

FX.php に比べて FileMaker の PHP API は、やや高度な PHP の知識と経験が必要になると思います。
Posted by Kojima at 2006年10月27日 10:58
ありがとうございます。
何から手を付けてよいか分からなかったので、FX.phpもダウンロードしてソース見ましたがなかなか理解できなくて、もう一度再チャレンジします。
ありがとうございます。
Posted by tarou at 2006年10月27日 11:02
tarouさん、

PHP以外でのプログラミングの経験はありませんか?そうだとしても PHP は判りやすい言語なので、あきらめずに取り組めばすぐにわかるようになりますよ。

難しいことには答えられませんが、FX.php & PHP初心者の通る道は私も通ってきましたので、判らないところがあればいつでもどうぞ!
Posted by Kojima at 2006年10月27日 13:53
ありがとうございます。
PHP以外でのプログラミングは今だやったことありません。FX.php&PHPができるようになれば様々なことができる様になると自分は考えているので頑張ります
お勧めの参考になるようなサイトはありますか??
とりあえず何からはじめたらいいかもわからない感じで・・・
Posted by tarou at 2006年10月27日 15:01
tarouさん、

PHPは入門書が多数出版されています。といっても最初からいっぺんにゴールまで連れて行ってくれるような本はありません。まずは「PHPに親しむ」「プログラミングに触れる」ことを目標にして、とっつき易そうな本を1冊、手を動かしながら読んでみてください。遠回りに思えるかもしれませんが、やった分だけ必ず身につきます。その後で FX.php のサンプルスクリプトを見ると、きっと今とは違って見えますよ。

始める前は、ゴールへ至る「正しい」道筋もわからないし、どこから始めるのが「正しい」のかわからない感じがするかもしれませんが、自転車に乗れるようになったときのことを思い出してみてください。私は何度も転びました。もっと良い練習方法があったかもしれませんが、五十歩百歩。「今は転びながら練習する段階」と腹をくくって、手を動かしてみることをお勧めします。
Posted by Kojima at 2006年10月27日 21:39
Kojima's wikiにFX.phpについてごちょごちょ書き込んでもいいでしょか?
まとまった日本語のリソースが無いのと、新規のパートナーに説明するのに疲れてきてるので、そんな場があると素敵です。
Posted by 21 at 2006年10月31日 15:17
21さん、

もちろん OK です。FX.php についての実践的なノウハウを共有できる場は、本当に貴重だと思います。

しかし、せっかくなら 21さん自身で wiki を開設されてはいかがですか? 私もできる限り協力させていただきたいと思います。
Posted by Kojima at 2006年10月31日 16:24
はじめて書き込みさせていただきます。
FileMakerのオフ会では何度かお世話になってます。
FMStudioちょっと楽しみです。

FX.phpに関する情報は本当少ないので、私のほうでも少しずつブログに書き留めています。まだ途中ですがどんどんエントリしていきたいと思ってます。これから始めるって人にはそれなりに参考になるかもしれません。

間違ってるところもたくさんあるかもしれませんのでアドバイスお願いいたします。

よろしくお願いいたします。
Posted by nao at 2006年10月31日 17:18
naoさん、

コメントどうもありがとうございます。ブログ拝見しました。今までどうして自分のアンテナに引っかかって来なかったんだろう? FX.php入門者必見のブログですね。今後も楽しみにしています。
Posted by Kojima at 2006年10月31日 23:58
Kojimaさん、
Wiki、それもそうですねえ。
こちらもlivedoorでFX.php & FileMaker PHP API Wikiでも作っておきましょうか。ちょっと漁ってみます。

naoさん、
実は、毎度毎度毎度の案件で、naoさんのブログに必ず目を通してもらってから、FileMakerの概念など本格的な説明に入ってます。だので、はじめましてながら、めちゃくちゃお世話になっております。
naoさんのブログは基本をカバーしているので、もうちょっとTipsやらを日本語でWikiに集めたいですねえ。
Posted by 21 at 2006年11月02日 13:23
FX.phpを使った、認証管理分かる方いますか?
どうしても、うまくいかず悩んでます。
Posted by tarou at 2006年12月14日 13:28
tarouさん、

認証管理とは、ユーザーログインのことでしょうか。それともFileMakerデータベースの認証?
Posted by Kojima at 2006年12月14日 14:56
ユーザーログインです。FX.phpを使い認証管理を行いたいです。
現在、テーブルを2つ作りグループIDでアクセス権限を設定しています。
構成としては、ログイン画面→検索・登録画面に移動というような構成にしたいです。ソースを書き、うまくいってると思ってるのですがどうしても認証できません。FX.phpを使ったサンプルなどもネット上に出回ってないのでとても苦労してます。助けてください
Posted by tarou at 2006年12月14日 16:20
tarouさん、

naoさんのサイト「FX.phpとファイルメーカーを使ったWeb公開」の記事「044_認証管理の仕組みを作ろう_その1」からの一連の解説は参考になりませんか?

http://blogs.yahoo.co.jp/nao_r1/44388040.html?p=1&pm=c
Posted by Kojima at 2006年12月14日 21:55
naoさんの記事参考にさせてもらって作成しているのですが、どうしても認証管理の部分がうまくいきません。
FM側のテーブル作成、リレーションの部分はうまくいってるのですが、認証できませんと返ってきます。
アカウント・パスワードは間違ってないです。
何が、理由と考えられますか?
Posted by tarou at 2006年12月15日 09:04
tarouさん、

なるほど、そういうことならデバッグのテクニックということになりますね。デバッグの基本は問題の切り分けですから、どこで問題が発生しているかの絞り込みから始めましょう。FX.phpでのデータベースアクセスが怪しいとしたら、FX.phpをデバッグモードにして、FileMaker Server Advanced にどのようなURLを投げているのか調べてみましょう。URLが正しいようなら、得られたURLをブラウザなどで呼んでみて、どのような値が戻っているかを確認します。

FX.phpをデバッグモードにするには、コードのはじめの方に、
define("DEBUG", TRUE);
を追加します。

URLや戻り値が正しいのなら、FX.php以外のPHPコードのバグと考えられます。
Posted by Kojima at 2006年12月15日 09:25
デバック行いました。結果はhttp://admin:admin@192.168.3.72/fmi/xml/
FMPXMLRESULT.xml?-db=test&-lay=User&-max
=1&User_ID.op=bw&User_ID=%3D%3Dtarou&-find
となっていました。XMLを表示させたらリレーションを組んでいるのですが、そのテーブル情報(User)しかなく、User_ID、PassWord、User_Name、Group_IDしかなくアクセス権限に関する情報はまったくありませんでした。リレーションの問題ですか?FM上では表示されます。
//送信したユーザーIDが存在した場合の処理。
if(empty($RecordSet['errorCode'])){
//取得したレコードのキーを取得。
$key = key($RecordSet['data']);
//取得したレコードのパスワード情報と、ユーザーが送信したパスワードを照合。
if($RecordSet['data'][$key]['PassWord']==$_POST['PassWord']){
//一致した場合エラー変数をリセット。
$error=0;
//セッション関数にログイン済みのフラグを設定
$_SESSION['login']=1;
//取得したレコードの情報をセッション関数に設定
$_SESSION['create']=$RecordSet['data'][$key]['Group::Auth_Create'];
$_SESSION['read']=$RecordSet['data'][$key]['Group::Auth_Read'];
$_SESSION['update']=$RecordSet['data'][$key]['Group::Auth_Update'];
$_SESSION['delete']=$RecordSet['data'][$key]['Group::Auth_Delete'];
このあたりがまずいのでしょうか?
Posted by tarou at 2006年12月15日 09:50
追記、取得されたXMLは
FMPXMLRESULT
ERRORCODE>0</ERRORCODE
PRODUCT BUILD="06/14/2006" NAME="FileMaker Web Publishing Engine" VERSION="8.0.4.128"/>
DATABASE DATEFORMAT="MM/dd/yyyy" LAYOUT="User" NAME="test" RECORDS="2" TIMEFORMAT="HH:mm:ss"/>

<METADATA>
FIELD EMPTYOK="NO" MAXREPEAT="1" NAME="User_ID" TYPE="TEXT"/
FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="PassWord" TYPE="TEXT"/
FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="User_Name" TYPE="TEXT"/
FIELD EMPTYOK="NO" MAXREPEAT="1" NAME="Group_ID" TYPE="TEXT"/
/METADATA
RESULTSET FOUND="1"
ROW MODID="5" RECORDID="2"
COL
DATA>admin</DATA
/COL
<COL>
<DATA>admin</DATA>
</COL>
<COL>
DATA>管理者</DATA
/COL
<COL>
DATA>001</DATA
/COL
/ROW
/RESULTSET
/FMPXMLRESULT
でした。
Posted by tarou at 2006年12月15日 10:11
tarouさん、

このコメント欄ではXMLのタグはエスケープされないのでうまく表示できませんね。でもなんとなく読めます。

まず、FX.phpによるデータベースアクセスはエラーにならずに成功しているようですね。検索条件がUser_ID==tarouなのに戻っている値はadminなのが不思議です。ここはもう少し詳しく確認してみてください。

次に、データベースのレイアウト"User" には関連フィールド Group::Auth_Create 他が含まれているが、XMLには含まれていない、という理解でよろしいですか?

そういうことなら、関連フィールド Group::Auth_Create他を含むテーブルにXML公開のアクセス権が設定されていないことが考えられます。ご確認ください。
Posted by Kojima at 2006年12月15日 10:35
FX.phpによるデータベースアクセスはエラーにならずに成功しているようですね。検索条件がUser_ID==tarouなのに戻っている値はadminなのが不思議です。ここはもう少し詳しく確認してみてください。
すいません、この部分は投稿するさいに変えてしまいました。この部分はOKです。

データベースのレイアウト"User" には関連フィールド Group::Auth_Create 他が含まれているが、XMLには含まれていない、という理解でよろしいですか?
その通りです。XMLには含まれてません。
関連フィールド Group::Auth_Create他を含むテーブルにXML公開のアクセス権の設定は、ファイル→定義→アカウント・アクセス権で設定するのですよね??ここは、とりあえずテストなのですべてアクセス可能に設定はしています。
リレーションの設定が間違っているのでしょうか?
FM側の設定は目で見てわかるので間違えてないと思います。そうすると、phpの方のコードに間違いがあるのでしょうか?
Posted by tarou at 2006年12月15日 10:55
確認ありがとうございます。

関連フィールド Group::Auth_Create他が定義されている大元のテーブル(おそらく "Group" という名前?)は、"test"とは別ファイルにしていませんか?

もしそうなら、その "Group" を含むファイルのアクセス権が、"test"同様、XML公開を許可しているかをご確認ください。
Posted by Kojima at 2006年12月15日 11:07
確認しました。

関連フィールド Group::Auth_Create他が定義されている大元のテーブル(おそらく "Group" という名前?)は、"test"とは別ファイルにしていませんか?

ファイル名 testの中にテーブルGroupが存在します。

一度ファイルを見てもらえるとうれしいのですが
無理ですよね。
Posted by tarou at 2006年12月15日 11:19
おやおや、それはちょっと当てが外れてしまいましたね。失礼しました。

お手数ですが、このコメントにメールアドレスをつけておきますので、データベースファイルと、先ほどのURLで戻ってきたXMLとをお送りください。
Posted by Kojima at 2006年12月15日 11:28
tarouさんより送っていただいたデータベースファイルを拝見したところ、”User" というレイアウトが二つ存在しており、一方のレイアウトには関連フィールドがありませんでした。レイアウト名を変更したところ正しいXMLが戻ってきたとのことです。
Posted by Kojima at 2006年12月18日 09:15

この記事へのトラックバック