1. TOP
  2. Zohoクリエーター
  3. Zoho CRMのレコードを、レコード制限なくFetchする「searchRecordsByPDC」を使ってみた。

Zoho CRMのレコードを、レコード制限なくFetchする「searchRecordsByPDC」を使ってみた。

Zohoクリエーター

|
creator2017:01:13

やりたかったことは、シンプルにZoho CRMの連絡先のメール一覧を引っ張ってきたかった。

Zohoクリエーターで簡単なアプリケーションを作ろうと思った。シンプルに、Zoho CRMの連絡先タブのメール一覧を引っ張ってきて、クリエーターで入力した項目と合致したら、別の処理に移るというもの。Scriptで、レコード処理するというのが正直、分かるようで、よくわかっていない。。一般的にこういうのをするのは、サーバーサイドの言語なので、個人的にはかなりトリッキーだし、必然と制限ばかりになる。。

ほんで書いたのが、まずはこれ。

//CRMから連絡先タブのデータを取得
contactLists = zoho.crm.getRecords("Contacts");

for each contactList in contactLists
{
//連絡先タブのメール項目(Email)をとって、
    zm = contactList.get("Email");
//クリエーター側のemail項目名と合致したら、
    if (zm.equalsIgnoreCase(input.email))
    {
        alert("すでに登録されています。");
    }
    else
    {
        //ここで別の処理
    }
}

これは、項目単位で、動かすので、クリエーターのワークフローの「項目のアクション」で動かす。ようするに、JavaScriptで言うdocument.getElementById(‘ID名’);みたいなを書く必要がなく、ワークフローで「項目のアクション」>「個別項目」を選んでScriptを書く。

getRecords(“タブ名”)では、200件しかレコードとれない。。

考えたのは、getRecords()でFetchして、for eachで回して、データを一件ずつ取って、クリエーターのレコードと合致したら、というのを作ったみた。
これの問題点は、CRMの200件までしか、とってこない。。。そんな200件でデータがとまる利用シーンって、「どんな時ですかー」って叫びそうになった。こんなメソッドどんな時つかうの??疑問符連発。。

それで、以下のメソッドがあるみたい。

searchRecordsByPDCは、項目の種類は決まっているが一応、全部レコードをFetch可能


//searchRecordsByPDC("CRMタブ名", "CRMタブ内項目名(これは決められている)", クリエーター側の項目)
response = zoho.crm.searchRecordsByPDC("Contacts", "Email", input.email);

//response変数の中にはすでに配列として入っているので、重複していることを確認するなら0以上
if (response.size()  >  0)
{
    //CRMの中にあり、重複していたら、「1」以上がかえる。。
    alert(response.size());
}
else
{
   //ここで別の処理
}

searchRecordsByPDCは、デフォルトの項目かつZohoが決めた項目に限って無制限にレコードをとれるみたい。参照はこちら。今回は、連絡先タブのメールなんで、Contact>Emailで一応、取得可能。
また、変数に格納すると、配列として入っている。ここは便利。だから、for each{}とかでぐるっと回す必要がなく、第三引数のクリエーター側の項目名と同じものを見つけてくれる。そこから、size()というメソッドをつなげると、配列の数をカウントしてくれる。

しかし、何度やっても、CRMには入っていないメールアドレスをクリエーターで入力しても、必ず「1」が変える(ない場合は「0」のはず。。)
調べると、Email=>emailが正解。

response = zoho.crm.searchRecordsByPDC("Contacts", "email", input.email);

基本フィールドの項目って、頭文字って「大文字じゃありませんでしたかー」って、叫びそうになった(こちら参照)。ようするに、searchRecordByPDCで決められた項目は、頭文字が小文字

2017-01-13_12-32-11

今回のことで、考えて書くのは諦めた。毎回、メソッドごとに見て確認しないと駄目。
すごいうちわ的なScript言語。。利用者が圧倒的に少ないから、しかたがないかぁ。。
けど、本気で普及させたいなら、こういうのを一致させないと駄目。。利用者は増えない。