• @altius_rup
  • NEWBIE
  • 105 Points
  • Member since 2010
  • CTO
  • Altius Services


  • Chatter
    Feed
  • 2
    Best Answers
  • 1
    Likes Received
  • 0
    Likes Given
  • 22
    Questions
  • 65
    Replies
Setting login hours from 8am to 5pm in the PT (Pacific timezone) requires setting them to 5pm-3am in CEST (Central Europease summer timezone).
Unfortunately, Salesforce does not accept login hours which start in the evening and finish the following day.

How can I pass this stage ?
Is anyone encountering this error :

"Challenge not yet complete... here's what's wrong: 
The 'Set Case to Escalated' Workflow field update action was not found."

Not sure what's going wrong, but the action sure is there !
I just fcreated my first Lightning app : great !
Unfortunately, the Hello World example as described in the getting started PDF fails when I try to save the app custom component :

Failed to save undefined: No COMPONENT named markup://jam:hello found

Anyone run into this ?

Rup
Hi,
How can I get Javascript log messages (console.log) to appera in the XCode system log (or elsewhere) ?
Whe I run my app in the Safari browser on my Mac, console.log messages appear in the web browser developer console.
However, when running in the (Apple) iOS SImulator, they do not appear in XCode's console.

ANyone had this problem ? 

BTW the Cordova Logger and DebigConsole are declared in the confix.xml : any way to check whether they are active ?

Hope you can help,
Rup

Hi,

 

I have a VF page with a jQuery input field (actually a timepicker).

 

1) The NOK user scenario is the following : the user deletes the content of the input field and click immediately on the (VF) Save button.  VF has to process 2 events : - updating the field in the data model (jQuery event), and saving the data model to the database (Visualforce-managed event).

Unfortunately, the Save event does not 'wait' for the update to take place : the saved data is not up to date.

 

2) The OK scenario is the following : the user deletes the content of the input field and click somewhere else in the page, then clicks on the Save button. The data is always correctly saved to the database.

 

How can I make sure, in scenario 1) that the data gets updated before being saved ?

Thanks for any help,

Rup

I have an app which is already on the AppExchange.
It was developed depending on the RecordType feature.
Now the developers have matured, and want to remove this dependency : this is easy and has been done throuogh dynamic DML code.

The new version of the app no longer depends on the RecordType feature.
However, the package manager seems to think that the package still needs this feature, presumably because it used to in previous versions.

If I get all my app users on to the latest version, can I then somehow remove this recordtype-package dependency (call support ?) to make this version now installable in Professional Edition ?

Rup

Hi,

 

When you display a record on a VisualForce page with a standardController, its nice to get all the options available : the apex:page attribute 'tabStyle' decides which ico and color is displayed; the record's name (or number) is displayed also - as long as the showHeader attribute is true.

 

When you display more complew pages, you realize that the apex:page showHeader also impacts other part of the page - unnecessarily.

 

I'm makeing a "Master-Detail" View (that is the master-detail Design Pattern, not the Salesforce master-detail type of relation/lookup), i.e :

- a pageblock with a pageBlockTable showing a list of records (contracts)

- a pageblock with an apex:detail section showing the selected record, chosen in the table

 

Here's my VF page :

<apex:page standardController="Contract" tabStyle="Contract" extensions="ALS_ContractView_Controller" action="{!init}" id="page">

    <apex:form >
    <apex:pageBlock id="pageblock" title="Tous les contrats de {!accountName}" mode="detail">
        <apex:pageBlockTable value="{!Contracts}" var="item" rowclasses="odd,even">
            <apex:repeat value="{!ContractColumns}" var="col">
                <apex:column >
                    <apex:facet name="header">{!ContractColumnLabels[col]}</apex:facet>
                    <apex:outputPanel onMouseOver="document.body.style.cursor = 'pointer'; return true;" 
                                       onMouseOut="document.body.style.cursor = 'default'; return true;">
                                       
                        <apex:outputField value="{!item[ContractColumnNames[col]]}"/>
                        
                        <apex:actionSupport event="onclick" action="{!SelectContract}" rerender="pageblock,detail" status="status">
                            <apex:param assignTo="{!selectedContractId}" value="{!item.Id}" name="selectedI"/>
                        </apex:actionSupport>
                    </apex:outputPanel>
                </apex:column>
            </apex:repeat>
        
        </apex:pageBlockTable>
    </apex:pageBlock>
    </apex:form>
    
    <apex:pageBlock id="detail" mode="maindetail">
        <apex:detail id="theDetail"  subject="{!selectedContractId}" relatedList="true" relatedListHover="true" rendered="{!selectedContractId != NULL}"/>
    </apex:pageBlock>

</apex:page>

 

You will notice that I only display the detail if a contract is selected in the table.

 

Let's look at 2 different cases :

 

1) I start with a preselected contract (set in the controller extension's constructor).

In that case, the first time the page is displayed, the contract number and icon are displayed at the top of the page. Moreover, I get the nice hoverlist of the contract, displayed at the top of the detail pageblock, just after the pageblocktable

 

When I select another contract, the first contract number and icon don't change : that's normal, because they are displayed by the 'apex:page' which has not been rerendered.

The detail part of the page is rerendered nicey, but the relatedListHover has disappeared. *** Why ? ***

 

2) I start witout a preselected contract : selectedContractID = NULL

In that case, the first time the page is displayed, the contract number and icon do not appear : normal, I suppose.

The detail pageblock is not rendered.

 

When I select a contract in the table, I get the same behaviour as previously : the top of the page does not change (still no contract number or icon), and still no relatedListHover.

 

 

My question is : 

- how do I get the contract number of the selected contract to be displayed at the top of the page - all the time, and correctly ?

- how do I get the relatedListHover of the selected record to be displayed - all the time and correctly ?

 

 

Thanks for any ideas

Rupert

Hi fellows ... and Simon,

 

The dreaded '-10000' error is back : no changes in my configuration, at least that I can think of.

I get this error when I try to load any email with MailDrop :

 

Jun 18 08:12:06 MacBook.local Maildrop[1711]: scriptFile is /Users/xxx/Applications/Salesforce/Maildrop.app/Contents/Resources/mail scripts/Add Email to Salesforce.com.scpt
Jun 18 08:12:09 MacBook.local Maildrop[1711]: An exception was thrown during execution of an NSScriptCommand...
Jun 18 08:12:09 MacBook.local Maildrop[1711]: response XML not valid SOAP, root element should be Envelope, but was html
Jun 18 08:12:10 MacBook.local Maildrop[1711]: error executing script /Users/xxx/Applications/Salesforce/Maildrop.app/Contents/Resources/mail scripts/Add Email to Salesforce.com.scpt : {
NSAppleScriptErrorAppName = Maildrop;
NSAppleScriptErrorBriefMessage = "AppleEvent handler failed.";
NSAppleScriptErrorMessage = "Maildrop got an error: AppleEvent handler failed.";
NSAppleScriptErrorNumber = -10000;
NSAppleScriptErrorRange = NSRange: {227, 24};
}

 

Can you fix this ?  Is there a workaround ?

Rup

Hi,

 

Banks are really old-fashioned in the way they handle text data in files sent through even the latest standards-managing IT systems.  In SEPA, for example, they still handle text in their own charset which is not Unicode, more similar to old ASCII or even EBCDIC :(

 

In the US, its not a big problem, but in European and Asian countries, this is mega-important.

 

In Java, the Normalize and Pattern classes are great for this : Unicode text can be normalized down to ASCII in 2 or 3 instructions. In Apex, things are *very* long.

 

This is the normalization I go through today :

 

private String clean(String in) {
    //String minmaj = "ÀÂÄÇÉÈÊËÎÏÛÜÔÖaàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûüvwxyz";        
    //String maj    = "AAACEEEEIIUUOOAAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUUVWXYZ";
    String acc = 'ÀÂÄÇÉÈÊËÎÏÌÛÜÙÔÖÒÑ' + '°()§<>%^¨*$€£`#,;./?!+=_@"' + '\'';        // et Œ, Æ, &; 
    String maj = 'AAACEEEEIIIUUUOOON' + '                          ' + ' ';
    
    String out = '';                 
    for (Integer i = 0 ; i < in.length() ; i++) {
        String car = in.substring(i, i+1);
        Integer idx = acc.indexOf(car);
        if (idx != -1){
            out += maj.substring(idx, idx+1);
        } else if (car == 'Œ') {
            out += 'OE';
        } else if (car == '&') {
            out += 'ET';
        } else if (car == 'Æ') {
            out += 'AE';
        } else {
            out += car;
        }
    }
    
    return out;
}

 

Remember, this is to produce files where alignment is important, so I can't just replace Æ with AE without fixing the padding instructions (elsewhere).

 

This method uses too many instructions : has anyone got a better way of doing it, still in APEX ?

 

TIA,

Rup

Hi,

I'm trying to reproduce in APEX this PHP example :

<?php 
$key
="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
$binkey
= pack("H*", $key);
echo strtoupper
(hash_hmac('sha512',"ABC", $binkey));
?>

 

or this Java example :

privateString generateHMAC(String datas )
   
{

       
//                final Charset asciiCs = Charset.forName( "utf-8" );
       
Mac mac;
       
String result ="";
       
try
       
{
            finalSecretKeySpec secretKey = newSecretKeySpec( DatatypeConverter.parseHexBinary(CONSTANTS.KEY),"HmacSHA512");
            mac
=Mac.getInstance("HmacSHA512");
            mac
.init( secretKey );
           
finalbyte[] macData = mac.doFinal( datas.getBytes());
           
byte[] hex =newHex().encode( macData );
            result
=newString( hex,"ISO-8859-1");
       
}

       
return result.toUpperCase();

   
}

 

This is my APEX code :

private String hmacFunction(String str, String k) {
    Blob mac = Crypto.generateMac('hmacSHA512', Blob.valueOf(str), Blob.valueOf(k));
    return EncodingUtil.convertToHex(mac).toUpperCase();
}

 

This is no good, for the moment : encrypted strings match between Java and PHP, not with APEX.

The result for ABC should be :

100A6A016A4B21AE120851D51C93B293D95B7D8A44B16ACBEFC2D1C9DF02B6F54FA3C2D6802E52FED5DF8652DDD244788A204682D2D1CE861FDA4E67F2792643

 

Obviously, the difficulty lies in the pack('H*, key) conversion which seems to be different from the Blob.valueOf(key) call.

 

 

Can anyone help ?

 

Rup

 

 

Hi,

 

I'm trying to reproduce some PhP or Java stuff in APEX.

 

What is the APEX equivalent of this line of PhP code :

$binkey = pack("H*", $key); 

 

I could also ask : what is the APEX equivalent of this line of Java code :

finalSecretKeySpec secretKey = newSecretKeySpec(DatatypeConverter.parseHexBinary(key),"HmacSHA512");

 

I hope you can help me.

Rup

This SOQL query produces an internal error :

SELECT QuotaOwner.Name nom, SUM(QuotaAmount) montant FROM ForecastingQuota GROUP BY QuotaOwner.Name

 

Anyone know why ?

Rup

Hi,

Territory Management is great : we are planning on activating it.

 

We have 2 questions regarding impacts on Contacts :

1) Here ("Sharing Contacts" - http://login.salesforce.com/help/doc/en/contacts_sharing.htm) it says :

Contact sharing is not available for organizations that have territory management

What does thatmean, exactly ?

We are currently in a Private sharing model for Accounts and Contacts

 

2) How can we build contact lists related to territory portfolios ?

Once territory management is activated, do we get new options in building Contact list-views ?

Can we select, for example, all Contacts in Accounts of Territory X ?

If not, any suggestions to do this ?

 

Rup

Can I set up a callout which will regularly call my LDAP server to pull in the contacts, syncing them one way into Salesforce ? Rup

Hi all,

 

I think we've stumbled on a bug in dependency checking in packaging, and we're now in a very delicate situation, not being able to remove now useless workflows from our package.

 

Here's the story :

 

We have developed a privately listed app for only one customer A : this was at version 1.5, installed in their Professional Edition. All is fine.

 

We have prepared a second verion of this app for a new customer B, created version 1.9902 and installed in their Professional Edition : this is their production environment, we're still in project mode so no data and no users there, yet. This did not work because I had forgotten to package 2 workflows which do simple field value updates on object creation, so I added them to version 1.9903; this installed fine in customer B's Professional Edition (production), but still did not work.

 

I then realised that the workflows were not there, although I had packaged them.  Of course, customer B has not purchased the workflows option in their org.

 

QUESTION 1 : how could I install this package with workflows in an org with no workflows feature activated ?

 

I proceeded to uninstall the package from customer B.

I then replaced the features implemented with the initial workflows with similar features in a trigger, tested, added to the package version 1.9904.

Here, I realised I could not remove the workflows : 2 workflows, 2 field update workflow actions. For some reason, I could only delete 1 workflow action; I did, and deactivated the workflows.

 

I then proceeded to install version 1.9904 into customer B's PE org : NOK, this install is refused because the dependency on workflows is now detected correctly, and install is refused.

 

QUESTION 2 : I have an app with useless workflows; the versions of this app with included workflows are installed nowhere so depdence saying "workflows included in this package because included in a previous version" hould relax, and let me remove those workflows, no ?

 

I have obsoleted versions 1.9902 and 1.9903 : I would like to obsolete 1.9904, even remove all 1.99xx versions now useless and repackage my app without those d*** workflows.

Forums say elsewhere I need to uninstall ALL customers (including customer A) to fix this : crazy and, in my case, useless and unacceptable.

 

 

Who can help ?  @forcedotcom #askforce

Rup

OK, I have made extensive research on StandardSetController before implementing quite a complex page with features not supported by <apex:listView> or <apex:enhancedList>.

 

I have implemented pagination and column ordering, as well as some client-side multi-line selection and actions.

 

I have implemented dynamic read/write or readonly control line by line, depending on the Approved status of each line.

 

On this path, I have encountered the bug setting page size :

http://boards.developerforce.com/t5/Visualforce-Development/StandardSetController-setPageSize-does-not-work/td-p/202018

or here

http://boards.developerforce.com/t5/Visualforce-Development/bug-StandardSetController-or-QueryLocator-ignores-SOQL-where/td-p/99500

so I do not change page size.

 

 

I have another problem, and think I have the solution.

My StandardSetController is on a Parent/Children page, so filtered (by a where clause) to the id of the parent :

SELECT ID Rep__c STATUS_Done__c, isReadWrite__c, LastModifiedDate
FROM   CE_Line__c
WHERE  Rep__c = :repid

 

When I apply a filter in my VF page like this

<apex:panelGroup id="listViewFilterGrp">
    <apex:outputLabel value="Filter: "/>
    <apex:selectList value="{!CELines.filterID}" size="1">
        <apex:actionSupport event="onchange" action="{!updateMyLines}" rerender="table"/>
        <apex:selectOptions value="{!CELines.ListViewOptions}"/>
    </apex:selectList>
</apex:panelGroup>

and apply a filter, the 'WHERE Rep__c = : cerepid' clause gets wiped out : the returned list is filtered according to the definition of the filter, but across all RepIds !

 

Now I have spotted this person's problem with a WHERE clause being added to their Database query when filtering :

http://boards.developerforce.com/t5/Apex-Code-Development/ERROR-at-Row-1-Column-132-unexpected-token-WHERE/td-p/118177

 

This actually shows that the filter simply removes your own WHERE clause and *replaces* it with the equivalent clause from the filter.  How silly !!!  The filter clause should be *added* to my existing clause with AND, and everything would be fine.

 

Salesforce, please fix this bug to make StandardSetController filtering work on a Parent/Children page.

 

Thanks,

Rup

 

Hi,

I have this SOQL query :

AggregateResult[] results = [
              SELECT ProductLine_Name__c        label,
              GROUPING(ProductLine_Name__c)     labelGroup,
              SUM(Net_Order_Value_CustCurr__c)  value,
              SUM(Ordered_Quantity__c)          qty
              FROM     ROS_Orders__c
              WHERE    Account__c = :id
              AND      REPORT_Is_thisSeason__c = 1
              AND      Type__c = 'Orders'
              GROUP BY CUBE(ProductLine_Name__c)];

 

How can I add an extra filter/sort expresison to return only the TOP 10 results by value (ie Net_Order_Value_CustCurr__c) ?

 

Thanks for any help,

Rup

Hi,

I have built this VF page :

 

<apex:page standardController = "Opportunity"
                   extensions = "RefreshPage"
          standardStylesheets = "true"
                   showHeader = "true"
           >
    
    <apex:detail subject="{!id}"  showChatter="true"  relatedList="false"  inlineEdit="true" />

    <c:ConditionsTarifairesV3 />

    <apex:relatedList list="OpportunityContactRoles"/>
    <apex:relatedList list="OpportunityPartnersFrom"/>
    <apex:relatedList list="OpenActivities"/>
    <apex:relatedList list="ActivityHistories"/>
    <apex:relatedList list="NotesAndAttachments"/>
    <apex:relatedList list="ProcessSteps"/>
    
</apex:page>

 

Basically, I replace the display and management of opportunity lines, but display the opportunity detail in the standard way, allowing for inlineEdit.

 

When a user updates a certain field (by inlineediting in the opportunity, I want to redisplay the whole page (opp + lines).

 

To do this, I just need to redefine the Save method of Opportunity in the RefreshPage controller extension : 

 

public class RefreshPage {
    public ApexPages.StandardController stdCtrl { get; set; }

    public RefreshPage(ApexPages.standardController std) {
        stdCtrl     = std;
    }

    // Overloading standard Opportunity save behaviour
    public PageReference save() {
        stdCtrl.save();
        System.Debug('#### RefreshPage : in save()');
        return Apexpages.currentPage();
    }
}

This does not work : the ines are not redisplayed, i.e the whole page is not redisplayed.

 

Any ideas why ?  Any other solutions ?

 

Thanks for you contributions,

Rup 

Hi,

I need to display rows of a Salesforce object for data entry (eg product line items).

Each object has numerous fields (more than 20), and there are only a few rows (eg 5).

 

It would be much more practical my objects as columns in a VisualForce datatable, but that will be very complicated

- 1 or several transient classes to transform the Salesforce model into the displayed model

- 1 custom component for each different "complex" Salesforce type (date, lookup, selection list, etc.), since the VF page will no longer be displaying sObjects

- etc.

 

Is there a quicker way to benefit from all the standard Salesforce and VisualForce stuff (eg InputField instead of Inputtext) in a view where standard rows are transposed into columns ?

 

Thanks for any intelligent design ideas,

Rup

This has already been mentioned : why does Sites display an "Authorization Required" page when an exception is generated, instead of a "Generic Error Page" ?

 

We really need a better behaviour for public-facing web pages !

 

TIA,

Rup

Hi,

 

Banks are really old-fashioned in the way they handle text data in files sent through even the latest standards-managing IT systems.  In SEPA, for example, they still handle text in their own charset which is not Unicode, more similar to old ASCII or even EBCDIC :(

 

In the US, its not a big problem, but in European and Asian countries, this is mega-important.

 

In Java, the Normalize and Pattern classes are great for this : Unicode text can be normalized down to ASCII in 2 or 3 instructions. In Apex, things are *very* long.

 

This is the normalization I go through today :

 

private String clean(String in) {
    //String minmaj = "ÀÂÄÇÉÈÊËÎÏÛÜÔÖaàâäbcçdeéèêëfghiîïjklmnoôöpqrstuùûüvwxyz";        
    //String maj    = "AAACEEEEIIUUOOAAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUUVWXYZ";
    String acc = 'ÀÂÄÇÉÈÊËÎÏÌÛÜÙÔÖÒÑ' + '°()§<>%^¨*$€£`#,;./?!+=_@"' + '\'';        // et Œ, Æ, &; 
    String maj = 'AAACEEEEIIIUUUOOON' + '                          ' + ' ';
    
    String out = '';                 
    for (Integer i = 0 ; i < in.length() ; i++) {
        String car = in.substring(i, i+1);
        Integer idx = acc.indexOf(car);
        if (idx != -1){
            out += maj.substring(idx, idx+1);
        } else if (car == 'Œ') {
            out += 'OE';
        } else if (car == '&') {
            out += 'ET';
        } else if (car == 'Æ') {
            out += 'AE';
        } else {
            out += car;
        }
    }
    
    return out;
}

 

Remember, this is to produce files where alignment is important, so I can't just replace Æ with AE without fixing the padding instructions (elsewhere).

 

This method uses too many instructions : has anyone got a better way of doing it, still in APEX ?

 

TIA,

Rup

Can someone help me?

I keep getting this result: "The 'Sales Rep Win Rates' report chart does not appear to be using a vertical bar chart" although the report dóes show a vertical bar chart.
It's in:  "Create Reports and Dashboards for Sales and Marketing Managers; "Visualize Your Data"

I tried by doing the whole trail again in a fresh/new dev org, but keep getting the same result.

I am pretty much excited to play with lightning desktop after looking at the demo .Going through the trailhead but cant see it enabled in my org[00D280000011Q93] .When this will be available for users i India?
Is anyone encountering this error :

"Challenge not yet complete... here's what's wrong: 
The 'Set Case to Escalated' Workflow field update action was not found."

Not sure what's going wrong, but the action sure is there !
Hi,

Because of SSLv3 Poodle vulnerability, we have turned off SSLv3 support on our web server. This in term is causing Salesforce outbound messaging to fail.

Is there a work around with this from Salesforce end?

The outbound messaging processing issue was resolved once we turn SSLv3 back on our web server.

Ted Tsung
I just fcreated my first Lightning app : great !
Unfortunately, the Hello World example as described in the getting started PDF fails when I try to save the app custom component :

Failed to save undefined: No COMPONENT named markup://jam:hello found

Anyone run into this ?

Rup
Hi I have registered for DEV 401 exam today 01.30 IST ...i wanna cancel now.....i have opened a case ....how long it will take for money return........Please help me.....
I need apex code , I want a  Text Box and button on VF page, when i enter Some Text (ex address)  and enter, It should need to display all records where the Text matches(ex Address)......How we can acheive this? Is this Possible? Can we do this using SOSL, If anyone has the code please give me?
  • February 04, 2014
  • Like
  • 0

Today we’re excited to announce the new Salesforce Developers Discussion Forums. We’ve listened to your feedback on how we can improve the forums.  With Chatter Answers, built on the Salesforce1 Platform, we were able to implement an entirely new experience, integrated with the rest of the Salesforce Developers site.  By the way, it’s also mobile-friendly.

We’ve migrated all the existing data, including user accounts. You can use the same Salesforce account you’ve always used to login right away.  You’ll also have a great new user profile page that will highlight your community activity.  Kudos have been replaced by “liking” a post instead and you’ll now be able to filter solved vs unsolved posts.

This is, of course, only the beginning  and because it’s built on the Salesforce1 Platform, we’re going to be able to bring you more features faster than ever before.  Be sure to share any feedback, ideas, or questions you have on this forum post.

Hats off to our development team who has been working tirelessly over the past few months to bring this new experience to our community. And thanks to each of you for helping to build one of the most vibrant and collaborative developer communities ever.
 

 I'm a bit confused about that statement in the Mobile Development guide:

 

"Developing a hybrid application inside the container requires a build/deploy step for every change. For that reason, we
recommend you develop your hybrid application directly in a browser, and only run your code in the container in the final
stages of testing. JavaScript development in a browser is easier because there is no build/compile step. Whenever you make changes to the code, you can refresh the browser to see your changes."

 

I assume this means setting up all the static resources within a VF page or an external web site for say, the AccountEditor app which I have working in the emulator? Is there an easy way to do this from forcedroid,  or some sample code?

Just wondering if the code is just used for judging or if it then becomes Open Source?

Page was created by a vendor and getting them to fix it would cost money I would prefer not to spend.

 

Full page below, but the lines I appear to be having an issue with are these:

<a href="{!$currentPage.parameters.retURL}"> <Apex:outputText value="<< Back " rendered="{!if($CurrentPage.parameters.retURL != null, true, false)}" /> </a>
<apex:iframe src="/501/o?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe" rendered="{!if($CurrentPage.parameters.solutionId == null, true, false)}" />
<apex:iframe src="/{!$CurrentPage.parameters.solutionId}?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe2" rendered="{!if($CurrentPage.parameters.solutionId != null, true, false)}"/>

 

The page is meant to display the standard solution tab using isdtp=vw within the visualforce page. The first iframe would display the first page with the search and recently viewed solutions. Once the user clicks on the link of a specific solution in the iframe, the second iframe would become visible showing the selected solution and the first iframe would be hidden. Since the Winter 14 release, clicking a solution name in the first iframe makes the page load for half a second then nothing happens.

 

Going directly to the pages in the iframe using /501/o?isdtp=vw, the links are working just fine.

 

It appears $CurrentPage.parameters.solutionId is not populating with a value anymore, it stays blank when I add it to be displayed on the VF page. I have tried updating the code version on the VF page with no change.

 

 

Full Page(I think the vendor left a lot of garbage in thats not used):

 

<apex:page standardController="Solution" showHeader="false" sidebar="false" standardStylesheets="false" tabStyle="Account" >
<apex:form id="frm" >

<c:Header />
</apex:form>
<html>
<STYLE>
BODY {color: navy}
BODY {scrollbar-face-color: red}
</STYLE>
<style>
.bPageHeader
{
display:none;
}
.head-box {
border-radius: 0px 0px 7px 7px;
-moz-boder-radius: 0px 0px 7px 7px #888;
-webkit-boder-radius: 0px 0px 7px 7px #888;
background: url({!URLFOR($Resource.Images, 'images/head-bg-rou.jpg')}) repeat-x 0 0;
box-boder-radius: 0px 0px 7px 7px #888;
height: 67px;
behavior: url(js/PIE.htc);
}

.alink2{
text-decoration:underline;
}
.alink2:hover{

color:#f0a940;
cursor: pointer; cursor: hand;

text-decoration:underline;
}
.main-index2 {
background-color: #FFFFFF;
margin-top: 50px;
padding: 18px;
width: 966px;
border-radius: 7px;
}
.spacetd{
line-height:24px;
text-align:left;
}
.text-tr{
border-bottom:1px solid #ccc;
}
.FlowNextBtn {
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 3px;
padding: -3px 2px 0 4px;

}
.FlowPreviousBtn{
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 3px;
padding: -3px 2px 0 4px;
}
.FlowFinishBtn
{
background-color: #6DCFF6;
border: 1px outset #5BB5E0;
color: #FFFFFF;
display: inline-block;
right:340px;

font-size: 13px;
font-weight: lighter;
height: 19px;
margin-left: 400px;
padding: -3px 2px 0 4px;
}
.go-we3:hover{
color: #0066b1;
cursor: pointer; cursor: hand;
}
.boxtable tr td
{
line-height:35px;

}
.tablecls{
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
}
.detailList{
line-height:35px;
}
.bPageHeader
{
display:none;
}


</style>

<!--<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>-->

<body>
<div class="wrapper">
<div class="clr"></div>
<div class="main-index2">
<!-- <div class="col-3">
<c:SidePanel />
</div>-->

<div style="width:100%;" >
<div class="my-open" >
<div style="background-color:#008AD3;">
<h2 style="width:450px; font-family:sans-serif; font-size:20px; color:#fff;" valign="bottom">Solutions</h2>
</div>
</div>
<!---<apex:tabPanel switchType="server" >
<apex:enhancedList type="ContentVersion" height="600" rowsPerPage="25" id="aclist"/>
</apex:tabPanel>--->

<script>
function getParam(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return "";
else
return results[1];
}

var caseid = getParam('a_case_soln');


if(caseid != ''){
window.location = '/{!$CurrentPage.parameters.solutionId}?isdtp=vw&test=abc';
}

//
</script>


<a href="{!$currentPage.parameters.retURL}"> <Apex:outputText value="<< Back " rendered="{!if($CurrentPage.parameters.retURL != null, true, false)}" /> </a>
<apex:iframe src="/501/o?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe" rendered="{!if($CurrentPage.parameters.solutionId == null, true, false)}" />
<apex:iframe src="/{!$CurrentPage.parameters.solutionId}?isdtp=vw" scrolling="true" height="1152px" width="100%" id="myiframe2" rendered="{!if($CurrentPage.parameters.solutionId != null, true, false)}"/>

<script>
document.getElementById('myiframe2').src='/{!$CurrentPage.parameters.solutionId}?isdtp=vw&test=abc';

</script>
</div>

<div class="clr">

</div> </div></div><div class="clr"></div>

</body>


</html>
<apex:form >
<c:footer />
</apex:form>
</apex:page>

Hi,

 

I have a VF page with a jQuery input field (actually a timepicker).

 

1) The NOK user scenario is the following : the user deletes the content of the input field and click immediately on the (VF) Save button.  VF has to process 2 events : - updating the field in the data model (jQuery event), and saving the data model to the database (Visualforce-managed event).

Unfortunately, the Save event does not 'wait' for the update to take place : the saved data is not up to date.

 

2) The OK scenario is the following : the user deletes the content of the input field and click somewhere else in the page, then clicks on the Save button. The data is always correctly saved to the database.

 

How can I make sure, in scenario 1) that the data gets updated before being saved ?

Thanks for any help,

Rup

Hi, is the order of values I pass to a multi select picklist of importance? For example, there is a multi select picklist field whose values are defined in the order of "A;B;C;D" in SFDC Setup. If I want to update that field via web service API do I have to pass the values in the defined order or can I pass it like "B;C;A"? Thanks in advance,

Our organization would like to convert all Person Accounts to Contacts. We would like the converted contact to be connect to an account named, "Generic Contact."  I looked into this a little and this is what I found out. 

 

Option 1:

Each Person Account has a record in both the Account table and Contact table.  The Contact table holds all the Person Acount information.  The Contact table has a field called IsPersonAccount which is marked true. I would like to change the IsPersonAccount to false, change the AccountId to that of the "Generic Contact" account and Delete the Account with the old AccountId.

 

Whenever I try to change the IsPersonAccount to false, I get an error "INVALID_FIELD_FOR_INSERT_UPDATE".

 

Option 2:

Now I can export the contacts to a csv file and  filter out all contacts with business accounts leaving the Person Accounts.  Then I can delete all Person Accounts and import the people in my csv file as contacts.  Finally, reconnect all compaigns using the PHP API.  

 

 

I would much rather change the AccountId and IsPersonAccount fields  (much less work).  Is there anyway to do option 1 or is there a better way of converting PersonAccounts to Contacts?

Hi,

I wanted you to know that I was taking part in the mydreamapp.com competition to design (and get developed) the greatest Mac application !
My idea is macForce, salesforce.com on the Mac : the idea is presented here, copied below.

Please cross-post discussions about this idea on the mydreamapp forum.
If you wish to support this idea, please vote for it starting 1/2 september on mydreamapp.com.


So just imagine, now, having salesforce.com on your Mac.

You can use already the salesforce.com OnDemand service online ?
That's true, but here are the drawbacks :
. online : precisely, you have to be online to use salesforce.com
. speed : the reactivity of your web browser, through the internet, is much less good than any Mac app you are used to using locally
. usability : any Mac app, with great user interfaces and integration with your other Mac desktop applications, will be more usable, sexy and productive than salesforce.com through your web browser, even with the best Ajax UI (which salesforce.com does not have).

So what exactly will macForce offer ?


Feature 1 : sync your data between the OnDemand salesforce.com platform and your Mac, locally

You now have all your salesforce.com on your Mac; you can walk away from the net, use the data offline, and sync it back later on. Data is mapped to the MacOSX data model thanks to the introspection features of the salesforce.com API : Accounts and Contacts mapped to AddressBook addresses, Tasks and Events mapped to iCal, Documents stored in the Finder as files, etc.
Are you getting it now ?  You will be able to read, update, create, delete and link all this data offline, on your own Mac, and those actions will be reflected, after the next sync, in salesforce.com
You use several salesforce.com accounts ?  That's OK, macForce will tag your data with your salesforce.com userid, and store your passwords in KeyChain, if you want.
On MacOSX Server, this sync engine will run as a service : that means it will just run on its own, without your assistance - the same is true for the MacOSX client platform, of course.
Just like any sync service, conflicts will be managed and resolved. macForce will used the Mac's SynServices; there is a difficulty here, which is discovering how the "server" value of Client Description type is managed ...
Data is stored locally in a CoreData database. The sync engine will be extended with engine-plugins, developed by third-party partners, to connect to other OnDemand services. They will also be able to develop data-plugins to sync your own salesforce.com custom data objects (e.g. pulled in from the AppExchange).


Feature 2 : macForce integrated with Spotlight

This is not as straightforward as it seems, since Spotlight does not search databases (currently), but only searches file metadata. Depending on the advances of Spotlight in Leopard, we will either implement this feature rather like Delicious Library (i.e. create a small file for each salesforce.com object), or use the hoped-for Leopard feature of Spotlight for CoreData databases.
An API will be standardized around this service, in the first case, so that any Mac developer can developer his own local Mac application to handle your salesforce.com data on the Mac !  In the second case, the API will be simple Leopard CoreData+Spotlight : what could be more simple ?
So just imagine searching through your heap of salesforce.com contacts : they are all there; find them in Spotlight, in Mail, in AddressBook, etc.


Feature 3 : macForce integrates salesforce.com with the Mac

There is currently no Mac client for salesforce.com, because they provide a client component based on .Net which does not run on our favorite platform. No worries; with macForce, you will be using Mac apps !
Send an SMS to a salesforce.com contact from AddressBook; fix a meeting with him in iCal; send him an email and add it to his current Opprotunity from within Mail.app - all this on your Mac, offline : it will all sync up to the salesforce.com OnDemand service later on. macForce will be integrated with Skype for IP-calls, Gmail for storage if necessary, Google Maps and Earth for locations, Growl for notifications, etc., etc. Your imagination is the limit, your data is now on your Mac with macForce.


Feature 4 : macForce comes with its own Mac client apps

(sync) engines are nice, but Mac user interfaces are much nicer. macForce comes with its own client applications for you to update your own salesforce.com data on your Mac : a Sales and a Support console. These are designed like iSale or Delicious Library, and integrate all the possible operations on your standard salesforce.com data : Opportunity, Product, Solution, Contract, Campaign, as well as Document in Finder, Account and Contact in AB, Task and Event in iCal.
Your favorite Mac developer will also be able to add specific plugins into macForce to develop the perfect GUI (graphical user interface) to handle your own custom data from salesforce.com.


Feature 5 : macForce syncs your salesforce.com data with .Mac

A second sync engine keeps all your data synced with .Mac : your Accounts and Contacts data will sync with the rest of your AddressBook data, salesforce.com Events and Tasks will go with your iCal data, salesforce.com Documents (files) will go on iDisk, and all the rest will be synced as a new SalesForce.com data class in .Mac

So now, you can access all that business data from all your Macs : at home, at work, on your MacBook pro you want to take to the beach, etc.


Finally, a bit about this competition. How will judges evaluate macForce ?


A) Innovation and Creativity : ***** (5/5)?

This has never been done. I have been waiting for this app for 2 years, and not seen anyone mention anything like it. That is why I have started prototyping it, spending most of my time looking out for the technologies (now available) to implement it with.


B) Use of OS X and Leopard technologies : ****. (4.5/5)

Integrated with many desktop mac applictions, macForce will also rely on lower-level Tiger and Leopard technologies like Spotlight, CoreData, TimeMachine, etc.


C) Feasibility of Development : ****. (4.5/5)

This has already been prototyped - e.g. for calling the salesforce.com API, have a look at ActiveSalesforce which I run with client-only RubyOnRails.

D) Mass-Market Appeal : ***** (5/5)

I hope that macForce will simply be the Trojan Horse we have been waiting for to introduce the Mac massively into the entreprise : that is what I have been waiting for for 2 years now.


Beyond bringing valuable on-demand services right to your Mac, the "sync to on-demand" concept of macForce is the door open to a stream of Mac apps working locally with seamlessly-synced business services data and turns the salesforce.com service platform into an extension of the Mac and its .Mac/iDisk sync model.


  • August 30, 2006
  • Like
  • 0