【问题标题】:Salesforce App follow stopped workingSalesforce 应用程序关注停止工作
【发布时间】:2012-07-26 20:17:09
【问题描述】:

我的公司有一个应用程序,他们从应用程序交换(注意:在我开始之前)下架,允许您关注或取消关注 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();
}

第一个错误消息与权限有关,我没有收到此错误,因为我有管理员权限,第二个错误仅在帐户选项卡的按钮上。我更担心权限问题,有什么关于权限的吗?任何帮助都很棒!

【问题讨论】:

  • 你能发布确切的错误信息吗?
  • 这是什么语言的?您是否验证应用程序正确连接到 Salesforce 并进行身份验证?该应用程序是否有许可证,如果有,是否过期?或者它是开源的?从托管软件包安装(SFDC AppExchange?)您是否尝试联系应用程序的开发人员?
  • @jordan.baucke 对我来说它看起来像 javascript。 user1552849,如果之前可以工作,但是无缘无故停止工作,说明环境发生了变化,另外如果是应用交换应用,我相信你不能更改代码。正确的?因此,即使您发现了错误或错误,您也无法自己修复它,或者我搞错了。
  • grigriforce 我稍后会发布错误。 jordan.baucke 我没有编写应用程序所以我不是 100% 什么语言,我也相信它是 javascript。该应用程序适用于我们网站上的一些对象,但我的同事却遇到了不同的错误。就像我说的,我会发布两条消息。自从我刚开始以来,我的信息非常有限,这被扔给了我。没有许可证,应用程序的开发人员不再支持它。 Anup 我同意我相信最新的 Salesforce 更新可能会导致问题。我确实有代码,所以如果找到解决方案,我可以更改它。
  • 这是我的同事收到@grigriforce 的错误:{faultcode:'sf:MALFORMED_QUERY',faultstring:'MALFORMED_QUERY:实施限制:EntitySubscription 仅允许在 LIMIT 为非管理员用户时进行安全评估指定且最多 1000',detail:{MalformedQueryFault:{exceptionCode:'MALFORMED_QUERY',exceptionMessage:"实施限制:EntitySubscription 仅允许在指定 LIMIT 且最多 1000'时对非管理员用户进行安全评估,行:'-1' , 列:'-1',},},}

标签: salesforce


【解决方案1】:

我认为问题是throttle in SFDC,您只能关注每个用户一定数量的记录。如果此应用程序是按照您描述的那样设计用于大量跟踪记录,那么您可能会踩到油门,这是我从您的同事收到的关于 at most 1000 的错误中得到的一种印象,如果它以前有效,它有意义的是,您已经超出了组织/用户的限制

【讨论】:

  • ps。许多 AppExchange 应用程序在安装后并没有考虑到这些意外情况。所以他们当然有可能没有优雅地处理油门错误。
  • 这很奇怪,因为该应用程序用于取消关注记录,因此您可以避免该限制。我希望即使您到达它,您也可以取消关注以保持在它之下。另一件事是限制是500,所以我不确定它在哪里得到1000。
  • 一些节流阀也限制了在特定上下文中可以处理的结果数量,因此它们可能会达到其中之一。可以链接到 appexchange 上的应用吗?
  • 您是否从该图片中手动复制了自定义按钮的 javascript 源代码?还是你把它写在某个地方?
【解决方案2】:

非系统管理员用户对 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";

【讨论】:

  • 现在我的用户收到另一个错误“遇到此按钮或链接的 OnClick JavaScript 问题:未定义框”。想法?
  • 关注按钮、取消关注按钮或两者都发生这种情况?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
相关资源
最近更新 更多