中小企業ではどこでも同じかもしれませんが、弊社でも顧客情報は管理されていません。受注・営業などで企業情報は集まっているのに、個々人のスキルでExcelにまとめていればいいほう、というレベルです。
今回FileMakerで受注情報をまとめてきたのですが、企業名が適当すぎて再利用が難しいという問題に直面しました。少なくとも正式名称くらいは取得しておくべきだろうと思ったので、以下のカスタムAppを作りました
サンプルの仕様
1.顧客検索に企業名を適当に入れて検索🔍をクリック
2.name フィールドに企業名の候補一覧を出す
3.ドロップダウンで企業名を選択すると、法人番号と住所を出力
準備
法人インフォでAPIを使えるように申請をします。利用申請ページ
スクリプトの実装
検索ボタンに実装する法人インフォ取得スクリプト
フィールド設定[name; "" ]
変数を設定[ $company; 値:GetAsURLEncoded ( #g_顧客検索 ) ]
変数を設定[ $API_Token; 値:"(API_TOKEN)" ]
変数を設定[ $content; 値:"Accept: application/json" ]
変数を設定[ $URL; 値:"https://api.hojin-info.go.jp/api/v1/hojin?name=" ]
変数を設定[ $URL; 値:$URL & $company ]
URLから挿入[ $$response; $URL; cURL オプション: "curl -X GET -H " & $content & " -H X-hojinInfo-api-token:" & $API_Token ] [ 選択; ダイアログなし ]
変数を設定[ $parseJSON; 値:JSONFormatElements ( $$response ) ]
変数を設定[ $count; 値:ValueCount ( JSONListKeys ( $parseJSON ; "hojin-infos" ) ) ]
変数を設定[ $i; 値:0 ]
Loop
変数を設定[ $jsonName; 値:JSONGetElement ( $parseJSON ; "hojin-infos[" & $i & "].name" ) ]
変数を設定[ $jsonNames; 値:$jsonNames & ¶ & $jsonName ]
フィールド設定[ TNP_Master_CLIENT::name; $jsonNames ]
変数を設定[ $i; 値:$i+1 ]
Exit Loop If[ $i = $count ]
End Loop
企業名が選択されたときにスクリプトトリガで起動する法人インフォ住所取得
変数を設定[$company; 値:GetAsURLEncoded ( TNP_Master_CLIENT::names ) ]
変数を設定[ $API_Token; 値:"(API_TOKEN)" ]
変数を設定[ $content; 値:"Accept: application/json" ]
変数を設定[ $URL; 値:"https://api.hojin-info.go.jp/api/v1/hojin?name=" ]
変数を設定[ $URL; 値:$URL & $company ]
URLから挿入[ $$response; $URL; cURL オプション: "curl -X GET -H " & $content & " -H X-hojinInfo-api-token:" & $API_Token ] [ 選択; ダイアログなし ]
変数を設定[ $parseJSON; 値:JSONFormatElements ( $$response ) ]
フィールド設定[ TNP_Master_CLIENT::location; JSONGetElement ( $parseJSON ; "hojin-infos[0].location" ) ]
フィールド設定[ TNP_Master_CLIENT::corporate_number; JSONGetElement ( $parseJSON ; "hojin-infos[0].corporate_number" ) ]