フォーム送信のデータをメルマガ・DMラベルに利用 - 改行で区切られた値の処理

「フォームからメール送信されたデータを効率よく処理したいのだけど...。」というご相談。取り組み方や予算でいろいろな方法を考えることができそうです。

データの処理を優先しなければなりませんでしたので、先方のコンピュータにインストール済みのアプリケーション、FileMaker Pro11を使って作業することにしました。


Webのお問い合わせフォームから送信されてくるデータはこんな感じでした。
先頭に括弧( [ ] )でくくられたラベルがついてます。 (内容は仮想データ)

このデータを利用してメルマガを送ったり、DB用のラベルを作成するといった業務を想定されているようです。

行のデータをGetValue関数で取り出す

FileMakerでどのように処理するか考えました。

  • 上記のデータを保管するフィールド( フィールド名: インポート ) と、各行のデータを取り出す計算フィールド(フィールド名: お名前、ふりがな... )を作成。
  • 計算フィールドは、改行で区切られた行データをGetValue関数を使って取り出して、先頭から始まるラベルを除いたデータをRight関数とLength関数を使って取り出す。

関数の説明


フィールド: インポートから、"山田 一郎" を取り出すなら、「計算フィールド: お名前」は

  1. GetValue ( インポート ; 1 ) として " [お名前] 山田 一郎 " を取得。
    このままだと、"[お名前] "が余分なので、

  2. Length ( GetValue ( インポート ; 1 ) ) として行の文字数 "11"を取得。
    "[お名前] "は最後にスペースがあって、6文字なのでその分をマイナス。
    Length ( GetValue ( インポート ; 1 ) ) -6 として値 "5" を取得。

  3. Right関数で"[お名前] "を除いたテキストを取得
    Right ( GetValue ( インポート ; 1 ) ; Length ( GetValue ( インポート ; 1 ) ) -6 )

これで、テキスト "山田 一郎" が取得できました。


もっといい方法があるのかも?と不安になりつつも作業してきました。
データが取り出せましたので、とりあえずは解決です。

 iTunes Store(Japan)

 

関数の説明

GetValue 関数

値一覧にある値番号により与えられる要求された値を返します。
構文:GetValue ( 値一覧 ; 値番号 )
引数:値一覧 - 改行で区切られた値の一覧
   値番号 - 一覧から返される値
戻り値のデータタイプ:テキスト

Length 関数

フィールド内の文字数を返します。スペース、数字、特殊文字もすべて含まれます。
構文: Length ( フィールド )
引数:フィールド - 任意のテキスト、数字、日付、時刻、タイムスタンプ、またはオブジェクトのフィールド、あるいは任意のテキスト式または数値式
戻り値のデータタイプ:数字

Right 関数

テキストの右から、指定された文字数分のテキストを返します。
構文:Right ( テキスト ; 文字数 )
引数:テキスト - 任意のテキスト式またはフィールド
   文字数 - 任意の数値式、または数値を含むフィールド
戻り値のデータタイプ:テキスト


FileMaker Pro バージョンアップして新発売

4月10日にバージョンアップしたFileMaker Pro12が発売されました。
iOS デザイン&開発ツールなどが加わり、iPadiPhoneで魅力的なデータベースを利用できると思います。

早い機会に導入したいです。