1

私の会社には、app exchange から取得したアプリがあり (注: 私が始める前に)、salesforce.com で多数のケース/アカウント/商談などをフォローまたはフォロー解除することができました。おそらくそれは以前は機能していましたが、現在は機能していません。各ボタンのコードの何が問題なのかを知る必要があります。それらを修正できない場合、代替アプリのアイデアはありますか? アプリは、アプリ エクスチェンジから削除されました。

フォローボタンのコードは次のとおりです。

{!REQUIRESCRIPT("/soap/ajax/18.0/connection.js")}

//EDIT THE FOLLOWING LINE TO ALTER THE CODE FOR OTHER OBJECTS. USE THE PICKLISTS ABOVE        TO SELECT FIELD TYPE = $ObjectType AND THE OBJECT NAME THEN REPLACE "$ObjectType.Case" WITH   YOUR NEW OBJECT NAME
var records = {!GETRECORDIDS( $ObjectType.Case)};

function LBox() {
var box = new parent.SimpleDialog("steve"+Math.random(), true);
parent.box = box;`

 box.setTitle("Follow Records");

box.createDialog();
box.setWidth(220);

box.setContentInnerHTML("<img src='/img/loading32.gif' alt='' /> Running");

box.setupDefaultButtons();`

box.show();
}

function CBox(){
box.setContentInnerHTML("You are now following "+follow_count+" records<br /><br /><a href=\"#\" onclick=\"box.hide();\">Close</a>");
}



if (records[0] == null) { 
alert("Please select at least one record.");
} 
else { 
var follow_count = 0;

LBox();

for (var i = 0; i < records.length; i++){ 
var fol=new sforce.SObject("EntitySubscription");
fol.ParentId = records[i];
fol.SubscriberId = '{!User.Id}';

try{
sforce.connection.create([fol]); 
follow_count++;
}
catch(e){
alert(e);
}
}
CBox();

}

here's the unfollow button:
{!REQUIRESCRIPT("/soap/ajax/18.0/connection.js")}

// EDIT THE FOLLOWING LINE TO ALTER THE CODE FOR OTHER OBJECTS. USE THE PICKLISTS ABOVE TO SELECT FIELD TYPE = $ObjectType AND THE OBJECT NAME THEN REPLACE "$ObjectType.Case" WITH YOUR NEW OBJECT NAME
var records = {!GETRECORDIDS( $ObjectType.Case)};

// display running message popup
function LBox() {
var box = new parent.SimpleDialog("steve"+Math.random(), true);
parent.box = box;`

box.setTitle("Unfollow Records");

box.createDialog();
box.setWidth(220);

box.setContentInnerHTML("<img src='/img/loading32.gif' alt='' /> Running");

box.setupDefaultButtons();

box.show();
}

// display output message
function CBox(){
if (unfollow_count < records.length)
box.setContentInnerHTML("You have now unfollowed "+unfollow_count+" records. You were not following the other selected records. <br /><br /><a href=\"#\" onclick=\"box.hide();\">Close</a>");
else
box.setContentInnerHTML("You have now unfollowed "+unfollow_count+" records. <br /><br /><a href=\"#\" onclick=\"box.hide();\">Close</a>");
}

if (records[0] == null) {
alert("Please select at least one record.");
}
else {
var unfollow_count = 0;`

LBox();

try {
// find following records
var searchstring = "SELECT Id FROM EntitySubscription WHERE (ParentId IN (";
for (var i = 0; i < records.length - 1; i++) {
searchstring += "'" + records[i] + "',";
}
searchstring += "'" + records[records.length - 1] + "') AND SubscriberId ='{!User.Id}')";
var resultRecords = sforce.connection.query(searchstring).getArray("records");

// delete following records
var recordIds = [];
for (var i = 0; i < resultRecords.length; i++) {
recordIds.push(resultRecords[i].Id);
unfollow_count++;
}
sforce.connection.deleteIds(recordIds);
} catch(e) {
alert(e);
}

CBox();
}

最初のエラー メッセージは権限に関するものです。私には管理者権限があるため、このエラーは表示されません。2 番目のエラーは、アカウント タブのボタンにのみ表示されます。権限の問題についてもっと心配しています。権限について何かありますか。どんな助けでも素晴らしいです!

4

2 に答える 2

0

システム管理者ではないユーザーによる EntitySubscription のクエリには、LIMIT が含まれている必要があります。ボタンのクエリ コードを次のように変更すると、動作するはずです。

// find following records
var searchstring = "SELECT Id FROM EntitySubscription WHERE (ParentId IN (";
for (var i = 0; i < records.length - 1; i++) {
   searchstring += "'" + records[i] + "',";
}
searchstring += "'" + records[records.length - 1] + "') AND SubscriberId ='{!User.Id}') LIMIT 1000";
于 2012-07-27T21:43:33.967 に答える
0

問題はSFDCのスロットルだと思います。ユーザーごとに特定の数のレコードのみをフォローするように制限されています。このアプリがあなたが説明したようにレコードを大量に追跡するように設計されている場合、そのスロットルを押す可能性があります。これは、同僚が受け取ったエラーから得た印象のようなものです。at most 1000以前に機能していた場合も、理にかなっています組織/ユーザーの制限を超えたこと

于 2012-07-27T17:05:05.733 に答える