1

SalesforceのProfessionalEditionライセンスでは、別途購入しない限り、APEXコードまたはワークフローを使用できません。

自分が管理していないWebフォームから入力されたSalesforceのテキストをクリーンアップする必要があります。クライアントは、すべて大文字または欠落している文の大文字のテキストを修正したいと考えています。

この質問でこの回答を見ました。Salesforceのフィールドにスタイルを追加することは可能ですか?カスタムサイドバーコンポーネント内でjavascriptを使用します。これは、ユーザーがデータをアプリケーションに入力するときに変換が行われることを前提としています。私の要件では、データが自動化されたプロセスによって入力されるため、カスタムのセールスフォースボタンでフィールドのアクションを呼び出すことができる場合があります。

同じパターンに従うと仮定すると、文字列内の不正なフォーマットを確実に検出して修正する方法を見つける必要があります。

セールスフォース内のJavaScriptでこれを行う良い方法はありますか?

4

1 に答える 1

2

正規表現とAJAXツールキットのおかげで、必要なものに近づく方法を見つけました。

javascriptOnClickを呼び出すカスタム詳細ボタンを作成しました。

コードは現在の先頭を取り、文字クラス[AZ]内で、大文字の2文字を超える文字列を説明フィールドで検索します。文字列と一致するたびに、その文字列が小文字バージョンに置き換えられます。

文字列が「クリーンアップ」されると、リードを更新できます。

{!REQUIRESCRIPT("/soap/ajax/19.0/connection.js")} //adds the proper code for inclusion of AJAX toolkit
var url = parent.location.href; //string for the URL of the current page

var updateRecords = []; //array for holding records that this code will ultimately updated

  var re = new RegExp('[A-Z]{2,}', 'g');
  var inputString = "{!Lead.Description}";
  var matches = inputString.match(re);
  if(matches != null){
   for(var i = 0; i< matches.length;i++){
    inputString = inputString.replace(matches[i], matches[i].toLowerCase());
   }

  var update_Lead = new sforce.SObject("Lead"); //create a new sObject for storing updated record details
  update_Lead.Id ="{!Lead.Id}"; //set the Id of the selected Lead record
  update_Lead.Description = inputString;
  updateRecords.push(update_Lead); //add the updated record to our array

 }
 result = sforce.connection.update(updateRecords); //push the updated records back to Salesforce
 parent.location.href = url; //refresh the page

このコードは、Salesforce:JavaScriptを実行するためのカスタムボタンを見つけたものに基づいています。

このコードを修正して、Salesforceオブジェクトで機能し、選択したフィールドで機能するようにすることができるはずです。置換を行うコードを関数に移動して、これを簡単にすることができます。

于 2012-05-28T16:03:08.690 に答える