是否可以从我在visualforce中编辑的salesforce页面获取引荐来源?
我使用以下APEX方法
return ApexPages.currentPage().getUrl();
Run Code Online (Sandbox Code Playgroud)
...以上只返回当前网址和前一个网址或引荐网址
我想将Salesforce VisualForce页面转换为我公司网站的小部件.我想使用服务器端代码和服务帐户访问小部件.我将在我的网页中缓存,设置和输出小部件html.我知道我可以用服务器端代码和几个API调用来重现小部件,但我喜欢能够在Salesforce中管理小部件并让小部件可以在Salesforce中的其他地方重用.
在这种情况下,小部件将报告我们在Salesforce中跟踪的竞赛中的当前领导者.我计划将这种方法重用于其他"迷你报告小部件".这是一个非常有用的模式.我相信那里的人已经优雅地解决了它.到目前为止,我的搜索空洞.
我试图避开网站,因为用户点击我们的公司网站在Salesforce中没有用户帐户(现在我正在考虑允许匿名访问的网站).
我的第一次尝试看起来像这样(受SSO到自助服务门户的启发):
var ws = new sfapi.SforceService();
var lr = ws.login(Secrets.salesforce_user_name, Secrets.salesforce_password);
string url = "https://na6.salesforce.com/apex/mywidget?sessionId=" + lr.sessionId;
Run Code Online (Sandbox Code Playgroud)
我也试过了?sid和?csssid,但是这些网址只是让我跳到Salesforce登录页面:
https://na6.salesforce.com/apex/mywidget?sessionId=00D3000000myorg!my-session-id-from-logging-in-with-the-api-8_i2fX_9wnYdwnwatGVuX6jGjmVmnv50j78yfGF1aKHdoDFtIx_J9
Run Code Online (Sandbox Code Playgroud)
我可以使用标准的屏幕抓取技术,使用用户名和密码发布到标准的Salesforce登录表单,然后拉/ apex/mywidget页面.但这感觉笨拙且没有支持.
现在我正在考虑制作一个公开可用的新网站来公开我的小部件.至少我可以放心地屏幕抓住那页.
任何帮助表示赞赏.我现在打算使用匿名网站方法.
我有一个VF页面,它有2个日期字段和搜索按钮.
点击搜索我得到一些结果.我还有另一个按钮来打印这些结果,这只是一个新的VF页面呈现为pdf.
我想将此日期值传递到printVF页面.我也想把这个页面作为弹出窗口出现.
我有参数设置的pageref.由于我需要以弹出方式打开此页面,我需要找到一种方法来在window.open中使用pageref.
任何人都有关于如何实现这一目标的想法?
谢谢
Prady
编辑:我做的是在控制器中构建URL并在window.open中使用控制器变量.发生了一些非常奇怪的事情...第一次显示搜索结果并且我点击打印按钮,日期不会填充在字符串中,它们默认为今天的日期..如果我再次单击打印按钮日期正确填充在dateinput的url上.
public Class1(){
System.debug('inside constructor');
fieldContainer=new DummyTable__c(); // it contains date fields for date inputs
date todays=date.today();
If (fieldContainer.Start_Date__c== null)
{
startdate1=todays;
}else
{
startdate1=fieldContainer.Start_Date__c;
}
If (fieldContainer.End_Date__c== null)
{
enddate1=todays;
}
else
{
enddate1=fieldContainer.End_Date__c;
}
}
public void search()
{
startdate1=fieldContainer.Start_Date__c;
system.debug('startdate1'+startdate1);
enddate1=fieldContainer.End_Date__c;
system.debug('enddate1'+enddate1);
system.debug('inside search()....after clicking search button');
system.debug('startdate1'+startdate1);
system.debug('url'+url);
LoadData();
}
public string geturl()
{
url='apex/VF1?Pstartdate='+string.valueof(startdate1)+'&Penddate='+string.valueof(enddate1);
return url;
}
public string geturlRec()
{
urlRec='apex/VF2?Pstartdate='+string.valueof(startdate1)+'&Penddate='+string.valueof(enddate1);
return urlRec;
}
Run Code Online (Sandbox Code Playgroud)
VF
<script …Run Code Online (Sandbox Code Playgroud) <apex:outputLink value="/!{opportunity.id}">{!opportunity.Name}</apex:outputLink>
Run Code Online (Sandbox Code Playgroud)
我在VF中创建了2个页面.一页显示动态搜索中的自定义对象记录列表.这是完整的.
我现在需要创建一个自定义VF页面,以便在用户单击列表页面上的链接时显示单个记录信息.我知道我们可以使用如上所示的输出链接.
假设我已经构建了详细信息页面(假设其路径是"apex/customDetailPage"),我将如何修改此链接.因为我的详细信息页面需要传递给它的选定记录ID,我想.
我只想问一下开发人员是否知道如何在现场保存记录; 然后通过视觉力量检索它.
场景:我在自定义对象中有一些字段已在apex类中更新,即如果我System.Debug那些字段它显示了一些值.具体而言,每个帐户的这些值都不同.
问题:问题是我可以访问该类中字段的值; 但是当我在workbench或force.com资源管理器中编写SOQL以通过特定帐户ID查看自定义对象中的字段值时,它不会向我显示结果.所以我希望能够将结果保存在字段中,然后使用SOQL访问它们.保存它们的重点是我可以使用视觉力查询并显示它们.
我尝试过:我尝试创建自定义对象的新实例,然后使用put方法保存值,但这不起作用.
Abc__c abc = new Abc__c();
abc.account_id__c = Account.id;
abc.Number = 20;
System.Debug(abc);
Run Code Online (Sandbox Code Playgroud)
这打印出来了20.但是当我去工作台时,却没有!真的很感激任何种类的帮助.
我有一个我需要插入的sObject列表,但我必须首先检查插入是否成功.因此,我在执行插入和检查保存结果(对于insert语句)之前设置了数据库保存点.因为,如果发生任何错误,我不想处理,如果插入结果中有任何错误,数据库将回滚到保存点.
我需要为每个保存(插入)结果收集错误,并将每个错误与导致错误的特定sObject记录相关联.根据文档保存结果包含错误列表,插入的记录的Salesforce ID(如果成功)和成功指示符(布尔值).
如何将"保存结果"与插入的原始sObject记录相关联?
这是我放在一起展示这个概念的例子.这个例子是有缺陷的,因为InsertResults它并不总是与之匹配sObjectsToInsert.它不是我在自定义类中使用的代码,但它使用相同的逻辑.
Map<Id,sObject> sObjectsToInsert; // this variable is set previously in the code
List<Database.SaveResult> InsertResults;
Map<String,sObject> ErrorMessages = new Map<String,sObject>();
System.SavePoint sp = Database.setSavepoint();
// 2nd parameter must be false to get all errors, if there are errors
// (allow partial successes)
InsertResults = Database.insert(sObjectsToInsert.values(), false);
for(Integer i=0; i < InsertResults.size(); i++)
{
// This method does not guarantee the save result (ir) matches the sObject
// I …Run Code Online (Sandbox Code Playgroud) 我有一个SOSL查询,我在Contact和Lead SObject中搜索一个电子邮件地址.我指示查询返回一些字段,如FirstName,MobilePhone等.现在,如果我的SF组织没有MobilePhone字段可见性为true,则查询返回"Invalid Column MobilePhone".
有没有办法在解雇查询之前使用Force.com REST API获取给定对象的可用字段?
我的SOSL查询是
FIND {test@er.com} IN EMAIL FIELDS RETURNING Contact(Phone, Id, Department, Email, isDeleted, Name, MailingCity, Title ), Lead(Id, City, Company, Country, Name, MobilePhone, Phone, State, Status, Street, Title)
Run Code Online (Sandbox Code Playgroud) 建立:
A - <B> - C. 在A上,B上有一个RFS,然后有一个更新后的触发器,当运行时填充B上的字段.然后将B的一个字段汇总到C上的字段中.
题:
触发器有效,但我需要在数据库中的现有记录上运行它以使所有内容保持最新.我怎么做?我已经尝试在A和C上使用RFS进行"力量重新计算".
我公司最近注册了Google Maps API for business.
要使用API,我需要生成HMacSHA1签名,并将其添加到我的HTTP请求中.不幸的是,不知何故,我无法生成正确的签名.
为了测试,我使用谷歌提供的值来确保算法正常工作,我得到了正确的结果.这是代码:
string url = 'maps/api/geocode/json?address=New+York&sensor=false&client=clientID';
string privateKey = 'vNIXE0xscrmjlyV-12Nj_BvUPaw=';
privateKey = privateKey.replace('-', '+');
privateKey = privateKey.replace('_', '/');
//Blob privateKeyBlob = EncodingUtil.base64Decode(privateKey);
Blob privateKeyBlob = Blob.valueOf(privateKey);
Blob urlBlob = Blob.valueOf(url);
Blob signatureBlob = Crypto.generateMac('HMacSHA1', urlBlob, privateKeyBlob);
String signature =EncodingUtil.urlEncode(EncodingUtil.base64Encode(signatureBlob), 'UTF-8');
signature = signature.replace('+', '-');
signature = signature.replace('/', '_');
system.debug('signature is ' +signature);
Run Code Online (Sandbox Code Playgroud)
生成的签名应为:KrU1TzVQM7Ur0i8i7K3huiw3MsA =
以下是Google文档的链接,您也可以在其中找到相同的示例:https://developers.google.com/maps/documentation/business/webservices
几点需要注意:1.我使用了API文档中提供的示例Python脚本,它给出了正确的结果.2.我认为问题是,API Documentation说我们应该解码privateKey然后将它提供给函数.虽然Crypto Class的文档说"privateKey的值不需要以解码的形式.".我尝试了两种方法,无论是否解码,仍然没有结果.3.对于Google API,一切都必须是UTF-8编码; 我不知道那是否就像Encoding.Util解码那样.
我已经尝试了很多组合,但找不到解决方案.任何帮助将受到高度赞赏.
谢谢,Ankit
我正处于Salesforce Apex的学习阶段.我已经阅读了Dynamic Apex的主题,并且无法理解这个概念.有人可以解释它如何处理它以及在哪种情况下最好使用它?提前致谢.