Posted on Leave a comment

custom-metadata-apex-usages-bloom-r18

We hope you’ve missed us over these past weeks, and we hope that you’ll like what you will see in The Welkin Suite Bloom R18. We have started working on a very big update to the IDE that will bring you all metadata types and will change a lot of things of how we interact with Salesforce, but yes – started, but not yet finished 

However, we have a bunch of great updates today – starting from 5 features & improvements for the built-in sObjects Inspector and upto the Custom Metadata support and ‘Find Usages‘ functionality in Apex.

Custom Metadata support

Yes, you’re right – it’s one of the most requested features that we have had over the last 3-4 months, and now it is here in the Bloom R18 release. While we’re still working on supporting all metadata types that are available from Salesforce, we are adding the

Posted on Leave a comment

codescan-field-usage-report-bloom-r17

Phew… Finally the Bloom R17 version of The Welkin Suite is ready to roll-out to you, so you’ll enjoy then new great features we were working so hard last month! First of all it is the easiest way to analyze your Apex code against 180+ rules using the CodeScan tool – couple clicks and here’s your comprehensive report on code quality! Won’t say ‘second’, so next to CodeScan we are introducing you a great Field Usage Report that will help you finding out where and how your field is used and what might be the impact of any changes in it – without digging into XML files!

The built-in Task List panel will help you organizing your tasks, improved fields editor in sObjects Inspector will save your time when working with your sObjects and a bunch of other handy changes. Read more on what you’ll find in the Bloom R17.

Posted on Leave a comment

Use EasyDx GUI for your Salesforce DX project

Brief Introduction

In the past two months, I have been working on my open source project called Easy Dx. Now I am happy to announce that the first version is now available at npm and github. It is a wonderful (well, I think) GUI for Salesforce DX, completely open source and free of charge. Looks like below:

It helps to manage your Org, Project, Sources and Users at one place.

Salesforce DX cli tool is amazing. However, not everybody loves command line. For me, it is a bit hard to remember all these complicated commands. And GUI tool is much easier for the eye as well!

Installation

Before installing Easy DX, you need to install Salesforce CLI Tool and Node JS.

npm install doesn’t work very well for easdydx for now. So you need to use git clone (recommended) to get a local copy of the repository by:

git clone https://github.com/lance-shi/EasyDx.git

Posted on Leave a comment

copado-release-management-clone-fields-bloom-r16

It seems like this would be the best moment to update our release names from Bloom and Blaze to something new, as we’re starting a new iteration of significant updates to The Welkin Suite IDE. It would be even somehow nicer to release something like that on the 1st of March as a sign of a spring and something new and warm…

Well, we haven’t done either of this  But what we’ve brought to you is a couple great updates for release management (including integration with a great service from Copado), declarative development and other changes across the IDE. Just take a look.

Built-in Copado support for better and easier release management

Development is not only about development… Wait, no, it really is about development, but also we cannot run away from the fact that change management is tied up very closely to it. We not only write code, or

Posted on Leave a comment

2.1 When standardcontroller is not sufficient

The Concept

Standardcontroller is awesome. However, in most cases, standard controller won’t be sufficient to cover our requirement. Think about the following situations:

  • When you need to bring up and fill in multiple object’s data.
  • When you want to retrieve a list of records and bring them to the front page.
  • When the user input data needs to be handled before they can actually be stored.

And many, many more.

Actually, if Visualforce can only work with standardcontroller, it won’t be that powerful at all.

Some Code to Demonstrate

Let’s create a page which displays Merchandise information at the top and user and create a transaction for that merchandise at the bottom.

Assuming you have created the Merchandise, Transaction and Customer SObjects. The details of Transaction and Customer SObject are at here.

Let’s create an Apex code controller called AddTransactionController with the following code:

public class AddTransactionController 
{
    public Merchandise__c curMer {get; set;}
    public Transaction__c curTrans {get; set;}
        public AddTransactionController(ApexPages.StandardController con) 
    {
        String curMerId = con.getId();
        curMer = [Select Id, Name, 
                         Original_Price__c,
                         Discount_Type__c,
                         Discounted_Price__c
                  From   Merchandise__c
                  Where  Id = :curMerId];
        curTrans = new Transaction__c();
    }
    
    public pageReference AddTransaction()
    {
        curTrans.Merchandise__c = curMer.Id;
        insert curTrans;
        
        PageReference pr = new PageReference('/' + curTrans.Id);
        return pr;
    }
}

And a Visualforce page called AddTransaction with the following code:

<apex:page standardController="Merchandise__c" extensions="AddTransactionController">
    <apex:sectionHeader title="Merchandise" subtitle="Choose List"/>
    <apex:form >
    <apex:pageBlock title="Merchandise">
        <apex:pageBlockButtons >
            <apex:commandButton action="{!AddTransaction}" value="Add Transaction"/>
            <apex:commandButton action="{!cancel}" value="Cancel" immediate="true"/>
        </apex:pageBlockButtons>
        <apex:pageBlockSection title="Merchandise Info">
            <apex:outputField value="{!curMer.Name}"/>
            <apex:outputField value="{!curMer.Original_Price__c}"/>
            <apex:outputField value="{!curMer.Discount_Type__c}"/>
            <apex:outputField value="{!curMer.Discounted_Price__c}"/>
        </apex:pageBlockSection>
        <apex:pageBlockSection title="New Transaction">
            <apex:inputField value="{!curTrans.Amount__c }"/>
            <apex:inputField value="{!curTrans.Customer__c }"/>
        </apex:pageBlockSection>
    </apex:pageBlock>
    </apex:form>
</apex:page>

Save it and give it a try with an existing merchandise Id. For me, my url looks like this: https://ap7.salesforce.com/apex/AddTransaction?id=a002800000qUwnH

Replace it with your org instance name and merchandise Id.

Try to understand the code, but don’t try too hard. It is a bit tricky for now. So I will take a whole post to explain in the next post.

Next Post

2.2 Use apex to talk to database and persist data

Posted on Leave a comment

deployment-diff-visualforce-preview-bloom-r14

Christmas is in the air and it is less than 10 days before New Year, and believe you or not, but our team is not only decorating the Christmas tree – we’ve also prepared some special gifts for you! First of all, is our Christmas discount! And, in addition to that, today we are releasing The Welkin Suite Bloom R14 with some highly-requested features from our great users.

Better Visualforce editing, more powerful deployments, and some tweaks for Admins – we hope this will be a nice gift from us 

Previewing Visualforce pages in the IDE

UI development requires as short of a feedback loop as possible to ensure that everything works and looks exactly as it was designed. The last significant obstacle in The Welkin Suite in this way was previewing your changes in Visualforce pages. So in addition to the already-existing Lightning editor with previewer, we have just added the Visualforce