ディスカッション

NetSuiteの保存検索やレポートをマスターするための究極のガイドである分析センターを使用して、データの力を最大限に活用しましょう。複雑さを単純化し、組織の真の可能性を解き放ちます。今すぐ分析センターに参加して、新たな高みを目指しましょう!
New AI Community Guidelines. Please review and follow them to ensure AI use stays safe, accurate, and compliant.
Update: Narrative Insights has been restored and is now available.

Narrative Insights is Temporarily Unavailable due to an Infrastructure Issue. Learn how This Impacts Your Account and What to Expect While the Feature is Disabled.

オンラインフォームで作成した重複のリードレコードをマージする

編集済:Jun 2, 2025 2:48PM SuiteCloud / カスタマイズ

適用

製品:  NetSuite 2022.1  



シナリオ

オンラインフォームから新しいリードを作成する際、会社名とEメールに重複検出の設定がされています。 個人として販売されているリードを新規に作成した場合、すでに会社としてレコードが存在するため、重複したままになっています。 オンラインでは、このようなケースを想定しています。重複している場合、最も古いレコードを更新します。



解決策

オンラインフォームの重複検出のルールは、フォーム上で直接実行されます。しかし、リードフォームにスクリプトを配置した場合、次のようにデータを結合することになります。     nlapiSetFieldValue('companyname', firstname+lastname); のようなスクリプトが配置されている場合、送信前に オンラインフォームが送信された後、重複検出がこれを検出し、古いレコードを更新する代わりに新しいリードが作成されます。 これを解決するには、次のスクリプトが重複を分析した場合に実行されるスケジュールスクリプトが必要です。

 
  // スクリプトSuiteScript 1.0 
function beforeSubmit() { 
    var searchResults = search.create({ 
        search: record.Type.LEAD, 
        filters: 
        [ 
            ["email", "is", record.GetValue('email')] 
            ["companyname", "is", record.GetValue('companyname')] 
        ], 
        columns: 
        [ 
            search.createColumn({ 
                name: "id", 
                label: "ID" 
            }), 
        ] 
    }); 
 
    if (searchResults.lenght > 1) { 
        nlapiScheduleScript(SCRIPT, DEPLOYMENT, originalLeadId); 
    } 
} 
  


 
// スクリプトSuiteScript 2.0 
// N/task Module + N/search Module 
function beforeSubmit() { 
 
    var searchResults = search.create({ 
        search: record.Type.LEAD, 
        filters: 
        [ 
            ["email", "is", record.GetValue('email')] 
            ["companyname", "is", record.GetValue('companyname')] 
        ], 
        columns: 
        [ 
            search.createColumn({ 
                name: "id", 
                label: "ID" 
            }), 
        ] 
    }); 
 
    var searchResults = mySearch.run(); 
 
    if (searchResults.lenght > 1) { 
        var mrTask = task.create({ 
            taskType: task.TaskType.SCHEDULED_SCRIPT, 
            scriptId: SCRIPT, 
            deploymentId: DEPLOYMENT, 
            params: { 
                originalLeadId 
            } 
        }); 
    } 
}
新しいリードの目的は、古いレコードの必要なフィールドをすべて更新し、新しいリードを削除することです。



免責事項

ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。

タグ付けされた:

ようこそ!

サインイン

完全な詳細を表示するには、サインインしてください。

登録

アカウントがありませんか?ここをクリックして始めましょう!

リーダーボード

コミュニティの達人

第2四半期 (4月~6月 2026)

今週のリーダー

今月のリーダー

歴代リーダー