• Marty C.
  • NEWBIE
  • 360 Points
  • Member since 2013
  • Consultant
  • Slalom Consulting


  • Chatter
    Feed
  • 17
    Best Answers
  • 1
    Likes Received
  • 60
    Likes Given
  • 5
    Questions
  • 107
    Replies
I have a VF page where I'm looking to display related content on it. From the documentation I found (https://www.salesforce.com/developer/docs/api/Content/sforce_api_objects_contentdocumentlink.htm), you need to query the ContentDocumentLink object. Here's what my code looks like:

String eyeDee = Apexpages.currentPage().getParameters().get('Id');
thisCase = [SELECT Id, IsClosed, Subject FROM Case WHERE Id =: eyeDee LIMIT 1];
for(ContentDocumentLink c: [SELECT ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId =: thisCase.Id])
            kIds.add(c.ContentDocumentId);
content = [SELECT Id, Title, Description, Owner.Name, CreatedDate FROM ContentVersion WHERE PublishStatus = 'P' AND IsLatest = true AND ContentDocumentId IN: kIds ORDER By CreatedDate];

When I load the page however, I don't get any results. 

On the standard page (https://www.dropbox.com/s/fov495yzhyelami/Screenshot%202015-01-19%2012.46.15.png?dl=0) I can see the content. On the VF page, I don't get anything.

VF Code:
<apex:pageBlock title="Related Content">
   <apex:pageBlockTable value="{!Content}" var="c" rendered="{!Content.size != 0}">
      <apex:column >
          <apex:facet name="header">
               Title
          </apex:facet>
          <apex:outputLink value="/customers/{!c.Id}" target="_blank">{!c.Title}</apex:outputLink>
      </apex:column>
      <apex:column value="{!c.Description}"/>
      <apex:column value="{!c.Owner.Name}"/>
      <apex:column value="{!c.CreatedDate}"/>
   </apex:pageBlockTable>
   <apex:outputText value="No Content Related" rendered="{!Content.size == 0}"/>
</apex:pageBlock>

Any help would be awesome.
Hello,

I have followed the Quick Start steps in the Lightning Component Developer's Guide, and I can test my expense app tracker in the browser, but I would like to know how to deploy it to salesforce1 mobile app?
Hello.  Years ago I wrote some Apex code (batch process) which determines the "most recent Task" on a Contact.  It queries the TaskRelation object for each Contact, does some filtering, and chooses the mostly recently completed Task.  No problem - until recently the Users started creating recurring Tasks.  My code doesn't see them.  I did some digging and i found the following:
1) if i run a simple soql query on a NON-recurring Task, one record is returned (Select Id From Task WHERE Id = '00TE0000018y793')
BUT...
2) if i update that Task, setting the RepeatThisTask (RecurrenceRegeneratedType) and RecurrenceInterval fields to non-null values - and i run the exact same query, no record is returned. 

What is happening here?  Does the record find its way to a different object, or do i have to run the query differently?  (FWIW, i notice that with a recurring Task, the TaskRelation record exists - and it points to the correct TaskId, but if i try to pull values from that related Task via SOQL, i get nothing...)

thanks very much for your time.
chris
お世話になっております。

iOSのモバイルアプリケーション内で、入力された文字列をChatterへ投稿する、という動作を実装しようとしています。

HTTP POSTにはJSONを使い、リクエストを送信するコードを記述し、実行したところ、HTTPステータスコードとして400が返ってきました。
どのようなコードを記述すれば、上記のような動作を実現できるのでしょうか?

記述したコードは以下の通りです。

    NSString *header = [NSString stringWithFormat:@"OAuth %@", access_token];
    NSString *chatterURL = @"https://xxx.salesforce.com/services/data/v31.0/chatter/feed-elements";
   
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:chatterURL]
                                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                    timeoutInterval:60];

    [req setHTTPMethod:@"POST"];
    [req addValue:header forHTTPHeaderField:@"Authorization"]; //アクセストークンをヘッダに追加

    NSString *boundary = @"------------------a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq";
    [req addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
    [req addValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Accept"];
   
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"json\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/json; charset=UTF-8\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
   
    // request JSON
    NSString *bodyString = [NSString stringWithFormat:@""
                            "{ \"body\":\r\n"
                            "   {\r\n"
                            "      \"messageSegments\" : [\r\n"
                            "      {\r\n"
                            "         \"type\" : \"Text\", \r\n"
                            "         \"text\" : \"%@\"\r\n"
                            "      }\r\n"
                            "      ]\r\n"
                            "   }, \r\n"
                            "\"feedElementType\" : \"FeedItem\", \r\n"
                            "\"subjectId\" : \"xxxxxxxx\" \r\n"
                            "}", inputText];
   
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", bodyString] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [req setHTTPBody:body];

    NSError *error = nil;
    NSURLResponse *response = nil;
   
    //リクエストの送信
    [NSURLConnection sendSynchronousRequest:req
                                     returningResponse:&response
                                     error:&error];

上記コードを実行すると、NSURLConnectionの引数responseにHTTPステータスコードの400、
errorはnilが返ってきます。
お世話になっております。

掲題の件、質問させてください。
salesforce1において、visualforceで作成した画面を開いたときの初期化処理で
特定のテキストボックスにフォーカスを設定しようとしています。

google chromeでエミュレートした場合には、意図したとおりフォーカス設定できますが、
iphoneでは、フォーカス設定していませんでした。

試しに、ボタンを用意して、そのボタンをクリックした時に、
目的のテキストボックスにフォーカス設定する処理を作成しました。

実際にボタンをクリックして、
目的のテキストボックスにフォーカス設定する処理を作成しましたが、
画面の初期化処理のときに、上記のクリックイベントを起こしても、
目的のテキストボックスにフォーカス設定することはできませんでした。

フォーカス設定が上手くいっていない環境は以下のとおりです。
  OS : iOS 7.1.2
  デバイス : iphone5s
  ブラウザ : mobile safari

画面初期表示時にフォーカス設定するできるのでしょうか?
salesforce1の影響かmobile safariの影響か原因がわかっていませんが、
こちらで質問させていただきました。
お世話になっております。
標題の件について、質問させて下さい。

現在、Web-to-Lead機能を利用して、リードの追加と合わせて
キャンペーンメンバーに自動追加するHTMLを作成しています。

キャンペーンメンバーには、第1講座(FirstCourse)~第4講座といった、
カスタム項目を追加しており、HTML上のチェックボックスから、
キャンペーンメンバーのこれらの項目も更新したいと考えております。

現在はリードに同項目を追加し、リードのトリガからキャンペーンメンバーの
更新を行うように作成していますが、うまくいきません。

Web-to-leadの記述方法でクリアできるのでしょうか?
ご存知の方がいらっしゃいましたら、宜しくお願いいたします。
お世話になります。

visualforceのコンポーネントから

apex:commandLink,apex:commandButtonを使用して、ページのコントローラのメソッドを呼ぶとこは出来ますでしょうか?

当方で試した場合、
j_id9:j_id54:1:j_id56 ... 
などのDOMのパス? が変わってしまい、上手く動作しないようでした。

どなたかご教示お願い致します。
Need some help with a Trigger Error. I am not a developer so my skills get stretched with things like this. Also, for whatever it's worth I did not write the Trigger but am in a position to support it. The user is getting the following error when they try and merge records: "AccountTrigger: execution of AfterDelete caused by: System.NullPointerException: Attempt to de-reference a null object: External entry point"."

See below Trigger syntax:
trigger AccountTrigger on Account (before insert, after insert, after update, after delete) {
    String PROSPECT_RT_ID = dao_Account.getInstance().getRecordTypeId('Prospect');
    User defaultOwner = dao_User.getInstance().getUserByName('Medical-Surgical IT Data');
    List<AccountTeamMember> atmInserts = new List<AccountTeamMember>();
    List<AccountShare> ashInserts = new List<AccountShare>();
    String LTC_REP = 'EC Long Term Care Rep';
    String HC_REP = 'EC Home Care DME Rep';     

    Map<Id, Searchable_Account__c> saMap = new Map<Id, Searchable_Account__c>();    
    for (Searchable_Account__c sa : [Select Id, Account__c, Account_Name_ExtId__c from Searchable_Account__c where Account__c in :trigger.new]){
        saMap.put(sa.Account__c, sa);
    }
    for (Account a : Trigger.new)
    {
        if (a.RecordTypeId == PROSPECT_RT_ID)
        {
            if (trigger.isBefore)
            {
                a.OwnerId = defaultOwner.Id;
            } else if (!trigger.isDelete){              
                User originalOwner = dao_User.getInstance().getUser(a.CreatedById);
                AccountTeamMember atm = new AccountTeamMember();
                AccountShare ash = new AccountShare();
                atm.AccountId = a.Id;
                atm.UserId = originalOwner.Id;
                if ( originalOwner.Profile.Name.contains('HomeCare') || (originalOwner.UserRoleId != null && originalOwner.UserRole.Name.startsWith('HC'))  )
                {
                    atm.TeamMemberRole = HC_REP;
                } else if ( originalOwner.Profile.Name.contains('LongTermCare')  || (originalOwner.UserRoleId != null && originalOwner.UserRole.Name.startsWith('LTC')) ) {
                    atm.TeamMemberRole = LTC_REP;
                }
                atmInserts.add(atm);
                
                ash.AccountAccessLevel = 'Edit';
                ash.AccountId = a.Id;
                ash.OpportunityAccessLevel = 'None';
                ash.UserOrGroupId = originalOwner.Id;
                ashInserts.add(ash);
                
            }
        } else if (trigger.isAfter) {           
            Searchable_Account__c sa = saMap.get(a.id);
            if (sa== null) sa = new Searchable_Account__c();
            sa.Account__c = a.Id;
            sa.Account_Name_ExtId__c = a.Name + ' | ' + a.AccountNumber;
            saMap.put(a.Id,sa);
        }                   
    }
    insert atmInserts;
    insert ashInserts;
    upsert saMap.values();
}
I understand what is happening, and to an extent why but I am at a loss as to how to fix it. Thanks in advance for any guidance.
お世話になります。

Chatter に関係する送受信メールは、ガバナ制限の対象となるのでしょうか?

送信メール ・・・ @メンションで一度に大量のユーザ(グループ)に投稿した場合
受信メール ・・・ 上記のコメントを、メールで行った場合

https://help.salesforce.com/apex/HTViewHelpDoc?id=limits_email_general.htm&language=ja
には「Salesforce アプリケーションを使用して送信する単一メールはこの制限にカウントされません。」
との記載があるため、送信側は対象にならないと判断しました。

http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_gov_limits.htm
にも制限はあるようですが、こちらはもしかするとユーザー数×1000/日なのでしょうか?
お世話になっております。

リードの取引開始処理をApex(Trigger)で実装したいと思っております。

Leadオブジェクトの「IsConverted(取引開始済フラグ)」を「true」にし、
新しいAccountを作成(もしくは既存のAccountを更新)し、
新しく作成したAccountのIDを
LeadのConvertedAccountId(取引開始済みの取引先ID)に設定する、
というように実装すれば良いのでしょうか?

ご存じの方がいらっしゃいましたらご教授頂きたいです。
どうぞ宜しくお願い致します。
In the Documents, I have a public Folder called 'Images' where I have 6 images. How can I avoid hardcoding the file_id and instead get it dynamically.

Object__c obj = new Object__c();

obj.Test__c = '<img alt="comment image" src="/servlet/servlet.FileDownload?file=015n00000004vra" ></img>';

I know I can create custom setting but again that would mean hardcoding the value.

I want to Query the the folder  from Documents and get respective fileid from the folder.

Thanks!
  • February 16, 2014
  • Like
  • 1
Hey there,

I have a tabbed account Visualforce page. One of the tabs of this page is transactions (which is a child object of Account). Transactions has multiple record types with specific stages and fields for each record type. There is a link to a create New transaction page on the tab which leads to the create New Transaction VF page I have created as I need to extend the functionality so i can re-direct back to my accounts tabbed VF page, etc. 

My questions are:

Is it possible to still allow the user to select the record type through this method?

If so, how would I go about doing ?

Thank you so mcuh in advance for your time
I have written a piece of code to create several custom objects when a lead converts. It works, but I don't know how to test the code. How do I write the queries to confirm the custom object was created automatically?

Here is the trigger:

trigger createModefromLead on Lead (after update) {

    List<Mode__c> UpdateModes = new List<Mode__c>();
    List<Mode__c> InsertModes = new List<Mode__c>();
    Set<Id> AccountIds = new Set<ID>();
   
    for (Lead l :Trigger.new){
        if(l.IsConverted){
            AccountIds.add(l.ConvertedAccountId);
        }
    }

List<Mode__c> ModeList = [SELECT Id, Account__c, Name, Mode_Type__c, Est_Shipping_Spend__c, Est_Shipping_Volume__c FROM Mode__c WHERE Account__c in :AccountIds];

    for (Lead l :Trigger.new){
        if(l.IsConverted){

   //Parcel Mode
            if(l.HasParcel__c == TRUE){
                Set<Id> ParcelModeCount = new Set<Id>();
                for (Mode__c m: ModeList){
                    if(m.Account__c == l.ConvertedAccountId && m.Mode_Type__c =='Parcel'){
                     m.Est_Shipping_Spend__c = l.Spend_Annual_Parcel__c;
                        m.Est_Shipping_Volume__c = l.Count_Daily_Parcel__c;
                        ParcelModeCount.add(m.Id);
                        UpdateModes.add(m);
                    }
                }
                if(ParcelModeCount.size() == 0){
                    Mode__c Parcel = new Mode__c(
                        Name = 'Parcel',
                        Mode_Type__c = 'Parcel',
                        Account__c = l.ConvertedAccountId,
                        Est_Shipping_Spend__c = l.Spend_Annual_Parcel__c,
                        Est_Shipping_Volume__c = l.Count_Daily_Parcel__c);
                    InsertModes.add(Parcel);
                }
            }
        }
        if(UpdateModes.size()>0){
            Update Updatemodes;
        }
        if(InsertModes.size()>0){
            Insert InsertModes;
        }
}  
}

And Here is the start of the test:
 
@isTest

private class createModefromLead_TestClass{

    public static testmethod void Convert_NewAcc_CreateMode(){

        //Insert Lead
        Lead LD1 = new Lead(
            LastName = 'LD1',
            Email = 'LD1@LCA.com',
            Company = 'LCA',
            Status = 'Closed - Qualified'
        );
        Insert LD1;
       
        //Convert Lead
        Database.LeadConvert lc = new database.LeadConvert();
        lc.setLeadId(LD1.id);
        lc.setConvertedStatus('Closed - Qualified');
       
        //Verify LD1 Convert
        Database.LeadConvertResult lcr = Database.convertLead(lc);
        System.assert(lcr.isSuccess());

        //Verify LD1 Creates Mode object on Account
       
    }
}


 
Here is the code i am using.

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


var c = new sforce.SObject("Lead");
c.id = "{!Lead.Id}";
c.Contact_Attempt__c = 'True';

var discription = prompt("Call Discription", "");
var notes = "{!Lead.Discussion_Notes__c}";
var note = notes +  "\r" + "{!User.Alias}" + "--" + discription + "--" + "{!NOW()}" ;
c.Discussion_Notes__c = note;
result = sforce.connection.update([c]);

window.location.reload();

Discussion_notes__c is the long text area i am using.. Its working for 1st two times. After it creates two lines it gives me a error saying "A problem with the OnClick JavaScript for this button or link was encountered:unterminated string literal"
In the schema (version 29) I can see that Task has a field OwnerId with relationshipName = Owner and referenceTo = User. And I see that User has a childRelationship to Task with field = OwnerId.

So then I do 

select owner.id from task limit 1

and I get

{:queryResponse=>{:result=>{:done=>true, :queryLocator=>nil, :records=>[{:type=>"Task", :Id=>nil, :Owner=>{:type=>"Name", :Id=>"005d0000000yQjxAAE"}}], :size=>"1"}}}

Note that the :type of the :Owner hash is Name, not User.

And indeed, if I try to get a field that's in User but not in Name, it fails...

Rforce query? > select owner.latitude from task limit 1
{:Fault=>{:faultcode=>"sf:INVALID_FIELD", :faultstring=>"INVALID_FIELD: \nselect owner.latitude from task limit 1\n       ^\nERROR at Row:1:Column:8\nNo such column 'latitude' on entity 'Name'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.", :detail=>{:InvalidFieldFault=>{:exceptionCode=>"INVALID_FIELD", :exceptionMessage=>"select owner.latitude from task limit 1\n       ^\nERROR at Row:1:Column:8\nNo such column 'latitude' on entity 'Name'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.", :row=>"1", :column=>"8"}}}}

So...
1) Why does the schema lie?
2) What's the workaround, to actually get the User who owns the Task?

Bonus question: Why is there a relationshipName (as promised in the documentation) in the Account->Opportunity :childRelationships, but there is none in the Account->User :childRelationships? Without a relationshipName, there seems to be no way to do a nested query in SOQL.

(This is all with the rforce gem in Ruby, but I really don't think it's the gem's fault.)

i have a checkbox field Checkbox1__c and two text fields TextField1__c and TextField2__c
this validation rule doesn't work: IF( Checkbox1__c== false, TextField1__c= null && TextField2__c= null, TextField1__c= null && TextField2__c= null)

i want to create a validation rule that when Checkbox1__c is unchecked, the TextField1__c and TextField2__c should have no values. help ?
  • January 24, 2014
  • Like
  • 1
お世話になってます。

あるSOAP連携のAPI要求数がどのくらいだったか確認したいと思っています。

システム管理者の [組織情報] ページもしくは[管理レポート]の[過去 7 日間の API 使用状況]で確認すると
ユーザと1日のAPI要求数はわかりますが、もっと細かい内訳を確認することはできないのでしょうか?

もしご存知であれば確認方法を教えていただけると助かります。

よろしくお願いいたします。
Is there an object in Salesforce that I can query and/or run DML statements against to retrieve and create Chatter bookmarks for users?

Using Visualforce and Apex, is it possible to allow a user with the Customer Community User license to change the profile photo for another user having the same license? For example, let's say Adam and Frank are both community users. I want to enable Adam to log into the community, then change the profile picture for Frank.

Right now, I'm trying to use ConnectApi.ChatterUsers.setPhoto() (https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_ConnectAPI_ChatterUsers_static_methods.htm#apex_ConnectAPI_ChatterUsers_static_methods), but I'm getting an error: Insufficient Privileges: You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary.

The relevant code snippet is shown below:
 

ConnectApi.ChatterUsers.setPhoto(
    MyNeds.getNetworkId(), getCommunityUser().Id, photoInput);

Can someone point me to documentation that definitively states that an Apex trigger will only process a maximum of 200 (or the correct number) records each run? Regardless of how the trigger was activated, e.g., by a Visualforce action, via the SOAP API, through the Bulk API?

The Triggers page[1] in the Force.com Apex Code Developer's Guide, Version 30.0 seems to imply that triggers will only process a max of 200 records per run. To me, this means that even if I load 1,000,000 records through the Bulk API in one request, that 1,000,000 records will actually be processed in chunks of 200 records.

[1]: Triggers page

I have a query that returns over 190,000 records, and I need to break those records up into smaller chunks for performance and presentation in Visualforce. Each chunk is supposed to presented on a single page, and pagination is implemented using the OFFSET and LIMIT clauses in SOQL. A simplified version of the query containing the key elements is shown below:

SELECT Account__c, Product2__c, MyValue__c
FROM MyObject__c
ORDER BY Account__r.Name, Product2__r.Name

As implied, Account__c and Product2__c are both relationships to the standard Account and Product2 objects. For what it's worth, Account__c is a Master-Detail(Account) field and Product2__c is a Lookup(Product) field.

I want to limit each page to a consistent number of Account-Product2 combinations. But I am having trouble doing this because each combination can have a variable number of MyObject__c records.

What would be a good solution for implementing consistent pagination in this situation? I have tried creating a "composite ID" formula field by concatenating Account__c and Product2__c. But the MyObject__c query times out when I add "AccountProductCompositeId__c IN :compositeIdSet" to the WHERE clause, even when the number of combinations per page is limited to 25.

At this point I am thinking of running two queries to pull in more information than I need, and then use Apex to drop the excess data before presenting the data on the Visualforce page.

Does anyone know where I can get a list of the metadata API names for system and app permissions defined in .profile files?

 

Salesforce does not seem to publish the API names of the 130+ system and app permissions documented in the "User Permissions" page or the Profile page in the Metadata API documentation. I need the API names so that I can construct metadata files to deploy using the metadata API.

I have a query that returns over 190,000 records, and I need to break those records up into smaller chunks for performance and presentation in Visualforce. Each chunk is supposed to presented on a single page, and pagination is implemented using the OFFSET and LIMIT clauses in SOQL. A simplified version of the query containing the key elements is shown below:

SELECT Account__c, Product2__c, MyValue__c
FROM MyObject__c
ORDER BY Account__r.Name, Product2__r.Name

As implied, Account__c and Product2__c are both relationships to the standard Account and Product2 objects. For what it's worth, Account__c is a Master-Detail(Account) field and Product2__c is a Lookup(Product) field.

I want to limit each page to a consistent number of Account-Product2 combinations. But I am having trouble doing this because each combination can have a variable number of MyObject__c records.

What would be a good solution for implementing consistent pagination in this situation? I have tried creating a "composite ID" formula field by concatenating Account__c and Product2__c. But the MyObject__c query times out when I add "AccountProductCompositeId__c IN :compositeIdSet" to the WHERE clause, even when the number of combinations per page is limited to 25.

At this point I am thinking of running two queries to pull in more information than I need, and then use Apex to drop the excess data before presenting the data on the Visualforce page.

Hi All,

I have a user which has "Force.com Subcription license". He cannot able to access the report which is been saved under Unfied public report. I have even change the folder and given access to that folder but still getting the same error as "Insufficient Privelege".
Can anyone please help me out with this.

Thanks,

Regards,
Samuel
I have a VF page where I'm looking to display related content on it. From the documentation I found (https://www.salesforce.com/developer/docs/api/Content/sforce_api_objects_contentdocumentlink.htm), you need to query the ContentDocumentLink object. Here's what my code looks like:

String eyeDee = Apexpages.currentPage().getParameters().get('Id');
thisCase = [SELECT Id, IsClosed, Subject FROM Case WHERE Id =: eyeDee LIMIT 1];
for(ContentDocumentLink c: [SELECT ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId =: thisCase.Id])
            kIds.add(c.ContentDocumentId);
content = [SELECT Id, Title, Description, Owner.Name, CreatedDate FROM ContentVersion WHERE PublishStatus = 'P' AND IsLatest = true AND ContentDocumentId IN: kIds ORDER By CreatedDate];

When I load the page however, I don't get any results. 

On the standard page (https://www.dropbox.com/s/fov495yzhyelami/Screenshot%202015-01-19%2012.46.15.png?dl=0) I can see the content. On the VF page, I don't get anything.

VF Code:
<apex:pageBlock title="Related Content">
   <apex:pageBlockTable value="{!Content}" var="c" rendered="{!Content.size != 0}">
      <apex:column >
          <apex:facet name="header">
               Title
          </apex:facet>
          <apex:outputLink value="/customers/{!c.Id}" target="_blank">{!c.Title}</apex:outputLink>
      </apex:column>
      <apex:column value="{!c.Description}"/>
      <apex:column value="{!c.Owner.Name}"/>
      <apex:column value="{!c.CreatedDate}"/>
   </apex:pageBlockTable>
   <apex:outputText value="No Content Related" rendered="{!Content.size == 0}"/>
</apex:pageBlock>

Any help would be awesome.
Hello,

I have an AppexEchange Applicaiton that uses oAuth2 to gaing access for a conected app.

The process work properly, but for one specific account  after the AutorizationCode was recived, when I try to get a new Token I get an Error "400 Bad Request".

his same process work properly for many other clients how installed the app. Only for one specific account does not work. Its a Enterprice license account.

I checked the user's profile have API access enable and there is not IP restriccions.

Can you please help to see what can be making this AutorizationCode to generet a "400 Bad Request".

Thanks.
 
Currently when we set up a new user we have to add their names to 2 different picklists. If I am creating a sales rep user we have to add his or her name to the "salesrep" picklist and if I am creating BDR user I have to add his or her name to the "BDR" picklist. Is there a way that these names are automatically added to the picklist upon a user creation?
I was asked to add a filtered related list to Contact, and accomplished this with visualforce.  I created a visualforce element that limits the campaign history, added it to the layout, and then removed the orignal Campaign History related list.  However, the request also asks that the new element now have the orignal "add to campaign" button on it.  However, I've tried multiple ways of getting the button transferred to the new element with poor results.

The best effort was using the following:
<apex:commandButton value="Campaign Member Assignment" action="{!URLFOR($Action.Contact.AddToCampaign,Contact.Id)}"/>

It opens the Campaign Member page inside the Visualforce element (bad) and doesn't actually save the member (also bad).
Help?

 
お世話になります。
↓こちらのページにサンプルがある security-config.xmlを設定したサーバーが、昨日から急に立ち上げ時にエラーになるようになりました。
http://forcedotcom.github.io/java-sdk/spring-security
エラーは
The matching wildcard is strict, but no declaration can be found for element 'fss:oauth'
となっていて、fss:oauthというsalesforceのカスタムタグが解釈できないというものです。
ネットで検索した結果以下のページの現象と同一です。
http://stackoverflow.com/questions/8711186/the-matching-wildcard-is-strict-but-no-declaration-can-be-found-for-element-fs
このページによると、XMLの先頭付近に定義した
xmlns:fss="http://www.salesforce.com/schema/springsecurity"
のURLがリンク切れになったためにカスタムタグが解釈出来なくなっているという結論です。
このURLはsalesforceから提供されているものと思いますが、リンク切れが修正されないとしたら、
どのように対処すればよいでしょうか。
 
I get an "UNKNOWN_EXCEPTION" error when I try to save a component after adding a ui:inputSelect component. I'm following the examples provided here: http://documentation.auraframework.org/auradocs#reference?descriptor=ui:inputSelect&defType=component (http://documentation.auraframework.org/auradocs#reference?descriptor=ui:inputSelect&defType=component" target="_blank). Are the examples incorrect?
  • November 05, 2014
  • Like
  • 1
Hello,

I have followed the Quick Start steps in the Lightning Component Developer's Guide, and I can test my expense app tracker in the browser, but I would like to know how to deploy it to salesforce1 mobile app?
Hello.  Years ago I wrote some Apex code (batch process) which determines the "most recent Task" on a Contact.  It queries the TaskRelation object for each Contact, does some filtering, and chooses the mostly recently completed Task.  No problem - until recently the Users started creating recurring Tasks.  My code doesn't see them.  I did some digging and i found the following:
1) if i run a simple soql query on a NON-recurring Task, one record is returned (Select Id From Task WHERE Id = '00TE0000018y793')
BUT...
2) if i update that Task, setting the RepeatThisTask (RecurrenceRegeneratedType) and RecurrenceInterval fields to non-null values - and i run the exact same query, no record is returned. 

What is happening here?  Does the record find its way to a different object, or do i have to run the query differently?  (FWIW, i notice that with a recurring Task, the TaskRelation record exists - and it points to the correct TaskId, but if i try to pull values from that related Task via SOQL, i get nothing...)

thanks very much for your time.
chris
I am trying to write test code for a page/class that is used to select a value. A user launches the page from the opportunity object.  This page opens and displays a listing of products (custom object)  when the user selects a product from the list, fields from the record are passed to another custom object.

My issue is trying to select something from that list in my test.  I first thought I would assign the the ID so I used "controller.products[0].p.id = WellnessHP.id;"  however, I recieved an error that the list was null...  I did create a record for the same object in my test class which is named "WellnessHP"

Here is the code.. how can I "select" my test record?  THanks!!!! Fred
User-added image
  • October 23, 2014
  • Like
  • 0
My team has been asked to filter the Campaign History related list to only display "Active" Campaigns.  
Since you can't filter with clicks, I assume I'll be needing to create a visualforce page that displays the filtered list,and then insert it into the page while removing the preexisting related list. The problem is that I'm not entirely sure where to start.

First question: Am I on the right track? The request is to only display Contacts with the "primary contact" checkbox selected on the account.

Second question: I've done simple visualforce related lists and some VF reports using standard controllers (thanks Mr. Workbook!) but this one is trickier because of the filter.  I assume I'm going to need an extension to query for the related campaigns via the member record.  This is where my skills start to drop off.

Third:  I am more than willing to read/tutorial/play so any suggestions for documentation, examples, or otherwise is acceptable.  Can anyone recommend a place to start there?
I recently enabled State and Country Code picklists for my org and wanted to access the STATE and COUNTRY code picklists on a visualforce page. However, when I try to reference them on a VF page, I receive the following error upon saving the VF page.
"Save error: Object type not accessible. Please check permissions and make sure the object is not in development mode"

I am using the following syntax to access these fields:
<apex:inputField id="ipFCountry" value="{!Contact.MailingCountryCode}" required="true" style="width:70%"/>
<apex:inputField id="ipFState" value="{!Contact.MailingStateCode}" required="true" style="width:70%"/>
Any good examples of callling a rest web service using OAuth 2 from Apex?
Hello,

I have an AppexEchange Applicaiton that uses oAuth2 to gaing access for a conected app.

The process work properly, but for one specific account  after the AutorizationCode was recived, when I try to get a new Token I get an Error "400 Bad Request".

his same process work properly for many other clients how installed the app. Only for one specific account does not work. Its a Enterprice license account.

I checked the user's profile have API access enable and there is not IP restriccions.

Can you please help to see what can be making this AutorizationCode to generet a "400 Bad Request".

Thanks.
 
Hi there,

As we have limitations for custom Quote templates so we are trying to create VF page as PDF. Generated PDF is getting attached under object 'Quote PDFs' (API is QuoteDocument).
We're facing a problem that we're not able to view 
content in the PDF generated having size more than 32 KB. However the content is visible when we are sending the PDF via email.

Is there any way to view PDF in salesforce itself?

Please assist.
Hi,
How do I access a ZIP static resource dynamically in a Lightning componenet? I tried the {!URLFOR()} notation but it is not supported. I want to import a style sheet.

Thanks
お世話になります。
↓こちらのページにサンプルがある security-config.xmlを設定したサーバーが、昨日から急に立ち上げ時にエラーになるようになりました。
http://forcedotcom.github.io/java-sdk/spring-security
エラーは
The matching wildcard is strict, but no declaration can be found for element 'fss:oauth'
となっていて、fss:oauthというsalesforceのカスタムタグが解釈できないというものです。
ネットで検索した結果以下のページの現象と同一です。
http://stackoverflow.com/questions/8711186/the-matching-wildcard-is-strict-but-no-declaration-can-be-found-for-element-fs
このページによると、XMLの先頭付近に定義した
xmlns:fss="http://www.salesforce.com/schema/springsecurity"
のURLがリンク切れになったためにカスタムタグが解釈出来なくなっているという結論です。
このURLはsalesforceから提供されているものと思いますが、リンク切れが修正されないとしたら、
どのように対処すればよいでしょうか。
 
お世話になっております。

Androidのモバイルアプリ開発を試そうと、SalesforceMobileSDK-Android で
提供されている native のサンプルアプリ「FileExplorer」を試したところ、
以下の事象が発生します。
解決策をご存じの方は教えてください。
(皆様の環境では同様の事象が発生しませんでしょうか。)

1)ログインとログアウトを繰り返すと白い画面でフリーズする。
 アプリを強制終了すると、再度ログインできるようになります。

2)ログインを行うとログイン画面が再度表示される。
  1)の事象を繰り返していると発生し、一度発生するとアプリを強制終了
 しても再度ログインできなくなります。
 再度ログインするためには、アプリの再インストールが必要でした。

※1)、2)の事象が起きた場合にも、共にログイン履歴ではログインに成功
 しているようです。

3)「ユーザ名を保存」のチェックボックスにチェックを入れても、
 ユーザ名が保存されない。

4)接続先のサーバの変更の際に、Sandboxを選択していても、
 常にProductionが選択された状態になっている。
 (ただし、実際はSandboxが選択されている。)

考えられる原因は何でしょうか。
使用している環境は以下の通りです。

開発環境:Eclipse 4.3
          Salesforce MobileSDK 2.2.3
ターゲット:Android 4.4.2
事象を確認済の機種のバージョン:Android 4.4.2
  • August 26, 2014
  • Like
  • 1
Returned "Undefined" when using Google apps script to downloading Account data from Opportunity. Please help me to get proper record from Field "Account.Name".

Copied following method.
https://gist.github.com/stomita/990589

Modified as followings:

from: Opportunity
fields: Id,Account.Name

----
// Query account data from Salesforce, using REST API with OAuth2 access token.
  var fields = "Id,Account.Name";
  var soql = "SELECT "+fields+" FROM Opportunity LIMIT 100";
  var queryUrl = instanceUrl + "/services/data/v21.0/query?q="+encodeURIComponent(soql);
  var response = UrlFetchApp.fetch(queryUrl, { method : "GET", headers : { "Authorization" : "OAuth "+accessToken } });
  var queryResult = Utilities.jsonParse(response.getContentText());
----

お世話になっております。

iOSのモバイルアプリケーション内で、入力された文字列をChatterへ投稿する、という動作を実装しようとしています。

HTTP POSTにはJSONを使い、リクエストを送信するコードを記述し、実行したところ、HTTPステータスコードとして400が返ってきました。
どのようなコードを記述すれば、上記のような動作を実現できるのでしょうか?

記述したコードは以下の通りです。

    NSString *header = [NSString stringWithFormat:@"OAuth %@", access_token];
    NSString *chatterURL = @"https://xxx.salesforce.com/services/data/v31.0/chatter/feed-elements";
   
    NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:chatterURL]
                                                    cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
                                                    timeoutInterval:60];

    [req setHTTPMethod:@"POST"];
    [req addValue:header forHTTPHeaderField:@"Authorization"]; //アクセストークンをヘッダに追加

    NSString *boundary = @"------------------a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq";
    [req addValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
    [req addValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Accept"];
   
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"json\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Type: application/json; charset=UTF-8\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
   
    // request JSON
    NSString *bodyString = [NSString stringWithFormat:@""
                            "{ \"body\":\r\n"
                            "   {\r\n"
                            "      \"messageSegments\" : [\r\n"
                            "      {\r\n"
                            "         \"type\" : \"Text\", \r\n"
                            "         \"text\" : \"%@\"\r\n"
                            "      }\r\n"
                            "      ]\r\n"
                            "   }, \r\n"
                            "\"feedElementType\" : \"FeedItem\", \r\n"
                            "\"subjectId\" : \"xxxxxxxx\" \r\n"
                            "}", inputText];
   
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", bodyString] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [req setHTTPBody:body];

    NSError *error = nil;
    NSURLResponse *response = nil;
   
    //リクエストの送信
    [NSURLConnection sendSynchronousRequest:req
                                     returningResponse:&response
                                     error:&error];

上記コードを実行すると、NSURLConnectionの引数responseにHTTPステータスコードの400、
errorはnilが返ってきます。
お世話になっております。
標題の件について、質問させて下さい。

現在、Web-to-Lead機能を利用して、リードの追加と合わせて
キャンペーンメンバーに自動追加するHTMLを作成しています。

キャンペーンメンバーには、第1講座(FirstCourse)~第4講座といった、
カスタム項目を追加しており、HTML上のチェックボックスから、
キャンペーンメンバーのこれらの項目も更新したいと考えております。

現在はリードに同項目を追加し、リードのトリガからキャンペーンメンバーの
更新を行うように作成していますが、うまくいきません。

Web-to-leadの記述方法でクリアできるのでしょうか?
ご存知の方がいらっしゃいましたら、宜しくお願いいたします。
お世話になっております。

提題の件について質問させてください。
現在、社内用システムを標準カスタマイズで構築しています。

あるページを編集して保存したときに、一つ上の階層に戻るという機能を実装
してほしいという要望があがっているのですが、どのようにすれば対応可能でしょうか。

ご存じの方がいらっしゃいましたらご教示いただけますと幸いです。
よろしくお願いいたします。
お世話になっております。
提題の件について質問させてください。

一括メール送信でメール送信を行う前に、テンプレートに本文を追加したいのですが、
可能でしょうか。

あらかじめメールテンプレートを編集しておくのではなく、一括メール送信直前に本文を
編集したいと考えています。

もし方法をご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくお願いいたします。
はじめまして。渡邉と申します。

以下のように、「行動(Event)」に対して、Before Update時に「開始(StartDateTime)」を参照するトリガーを作成しています。

// サンプル : 「開始(StartDateTime)」を取得して、「説明(Description)」に設定するトリガー
trigger EventTrigger on Event (before update) {
    if (Trigger.isBefore && Trigger.isUpdate) {
        for (Event ev : Trigger.new) {
            ev.Description = '' + ev.StartDateTime; 
        }
    }
}

Trigger.new から取得した「行動」レコードのStartDateについてですが、
「行動」の編集画面で「保存」した場合には、更新後の値が取得できます。
しかし、カレンダービューで「行動」をドラッグ&ドロップした場合は、
更新後の値ではなく、更新前の値になってしまいます。

Salesforce側のバグではないかと思うのですが、何かご存知の方がいらっしゃいましたら、共有いただけないでしょうか。
また、回避方法としては、Before Update からAfter Update に変更することが思いつくのですが、他に方法がありましたらご教授いただけないでしょうか。

以上、よろしくお願い申し上げます。
お世話になっております。
掲題の件につきまして質問させて下さい。

現在、professionaleditionで標準カスタマイズを行っており、取引先責任者の「肩書き」選択リスト(Mr等)を非表示にしたいのですが、
標準項目「取引先責任者名」に紐づいており、非表示にすることが難しいようです。

非表示にする方法をご存じの方がいらっしゃれば、ご教示いただけますと幸いです。

よろしくお願いいたします。
お世話になります。

visualforceのコンポーネントから

apex:commandLink,apex:commandButtonを使用して、ページのコントローラのメソッドを呼ぶとこは出来ますでしょうか?

当方で試した場合、
j_id9:j_id54:1:j_id56 ... 
などのDOMのパス? が変わってしまい、上手く動作しないようでした。

どなたかご教示お願い致します。
お世話になっております。
掲題の件について質問させてください。

APIでユーザを新規作成する場合(Userオブジェクトに対してUpsertすることを想定)、
パスワードリセットメールを新規作成したユーザに送付させないように実装したいと思っています。

メール送付を制御することが可能となるオプションや設定の仕方はあるでしょうか。
または、パスワードリセットメールを送付しないようにする回避策はあるでしょうか。

よろしくお願いいたします。
はじめまして。レポート作成について質問させてください。

下記のように子オブジェクトを2つ持つ親オブジェクトAを中心とした3オブジェクトのレポートを作成したいです。
(親) ObjectA - (子)ObjectB
         - (子)ObjectC

レポートタイプではA-BやA-Cは作成できても、A-B,A-Cといった作成はできませんでした。
子オブジェクトを複数もつオブジェクトのレポート作成はどのようにすればよいでしょうか。
いつもお世話になっております。

掲題の件、初歩的な質問で申し訳ありませんがご回答のほどよろしくお願いいたします。

今回、Apex Rest を使用し、開発を行っています。
戻り値はJSONを想定しており、正常時とエラー時で戻り値が異なる為、RestResponseを使用しています。

以下、簡単なソースです。
    @HttpDelete
    global static void doDelete(){
      //戻り値
      RestResponse res = RestContext.response;

   //エラー時オブジェクト
      ErrorResult er;

         ・
     ・
         ・

   //ユーザーの削除を行う.
      CalloutResult r = model.deleteUser(id);
        if(r.result_code != 204){
            //失敗
            er = new ErrorResult(r.code,r.message);
            res.responseBody = Blob.valueOf(JSON.serialize(er));
            res.statusCode = r.status_code;
            return;
        }
      
          ・
          ・
          ・
}

ユーザーを削除するメソッドなのですが、まず、削除対象のIDを検索しています。
検索結果が0件の場合はHttpStatusを404で、ResponseBodyをErrorResultクラスのJSONで
返却しようとしています。
しかし、実際にはHttpStatus404で、ResponseBodyが、[{"errorCode":"NOT_FOUND","message":"The requested resource does not exist"}]
が返却されます。
returnの直前までDebugで確認が取れており、ErrorResultの値は正しくなっています。

結果が正しくErrorResult型にならないのはなぜでしょうか?
どなたか教えていただけると有難いです。

いつもお世話になっております。

掲題の件、カスタム設定のデータセット名に全角丸カッコ'('で検索できない
事象が発生しております。

System.debug(カスタム設定__c.getValues('(')));

を実施するとnullが返ってきます。

どなたか全角丸カッコで検索する方法をご存知のかたが
いらっしゃればご教示ください。

初めて質問します。

現在、
 OfficeToolkit4.0を使用して、ContentDocumentLinkから、特定のレコードが共有しているレコードを取り出すプログラムを作成しています。

次のようなクエリを送ってレコードを取り出そうとしていますが、失敗してしまいます。
Select ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = カスタムオブジェクトID

同じクエリをデータローダ―で送ると成功するので、クエリが間違っているわけではないと思うのですが・・・

どなたか解決方法をご存じではないでしょうか。

どうかよろしくお願いします。



実際の関数はこんな感じです。
ログインはこの関数の外で行っています。

Public Sub Test(ByVal aID As String)
    Dim iQR As QueryResultSet4
    Dim strSFSOQL As String
   
    strSFSOQL = "Select ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = '" & aID & "'"
    Set iQR = gSF.Query(strSFSOQL, False)
   
    Set iQR = Nothing
End Sub

  • May 16, 2014
  • Like
  • 1

Is there an easy way to only display the Time of a DateTime object in VisualForce?

 

Also is there an easy way to display the Day-of-the-week like 'Friday' in VisualForce?

 

Currently, I'm using a switch statement taken from the pdf on Formulas, but am wondering if there is a better method:

{!CASE(MOD( TODAY() - DATE(1900, 1, 7), 7),0, "Sunday",1, "Monday",2, "Tuesday",3, "Wednesday",4, "Thursday",5, "Friday",6, "Saturday", "Error")}

 

Thanks

Parker