Building Custom Jump Hyperlinks from List blocks

Hints, Tips and Tricks

Technical Hints Tips and Tricks that cover customization and development using Sage CRM. API usage and coding are covered.

Building Custom Jump Hyperlinks from List blocks

  • Comments 10
  • Likes
Setting up a Custom Jump from a list to an ASP page is not difficult as we can see from the image below.



What is not so obvious is how we can cause more than one name/value pair to be included in the QueryString of the hyperlink. In the above example the field oppo_opportunityid is being used. If we want to also include the oppo_primarycompanyid in the hyperlink then we can write in the Custom ID Field

oppo_opportunityid,oppo_primarycompanyid

Note: It must be a comma delimited list.

The same extends to the customization of the lists in ASP pages. The CustomIdField property of the GridColumn Block can be set to a comma delimited list of field names.

var myBlock = eWare.GetBlock("opportunitylist");
var intRecordId = eWare.GetContextInfo("user","user_userid");
var Arg = "oppo_assigneduserid="+intRecordId;
var myGridColBlock = myBlock.GetGridCol("oppo_stage");
with (myGridColBlock)
{
JumpAction= 430;

CustomActionFile = "test.asp";
CustomIdField = "oppo_opportunityid,oppo_assigneduserid";
}
Comments
  • FYI, Just tried this technique using V7.1F and it breaks the URLs in the hyperlink. Below is an example of the hyperlink it creates :

    http://XXXX/crm/CustomPages/eventpeople/eventpeoplesummary.aspepeople_eventpeopleid=10081&from_entity=Person?SID=184513608936060&F=Person/PersonEventsList.asp&J=eventpeople/eventpeoplesummary.aspepeople_eventpeopleid=10081&from_entity=Person&Key0=2&Key1=2833&Key2=7936&HiddenRowCount=1

    As you can see it is putting the two parameters I specified people_eventpeopleid,from_entity before the question mark, when they should be putting it afterwards.

  • If this is not working then you need to log a case.

  • Has anyone else worked with this article?  I too have noticed the URL's are malformed.  Wondering if it's fixed in a later patch or 7.2, and if not, if anyone has developed a work around using a custom page.  It doesn't seem to let us jump to a custom page from a list field, only a custom jump.  

  • I am working on the very latest build and it still doesn't work.  I guess that you could create a dummy field in your view to concatenate the two (or more) values and then split it back up again in your target asp page.

  • I have logged a case internally about this today.

  • This still does not work in v7.3b when using multiple custom id fields e.g. oppo_opportunityid,oppo_primarycompanyid

    It is not separating the .asp page and parameters with a question mark e.g.http://test/portal/test.aspcomp_companyid=1010&eq_Equip=Lock&Key-1=58&PrevCustomURL=/portal/testMain.asp?

  • Any update on this?  Still broken in 7.3sp2.1

    I'm passing 2 values and the url is malformed for the first parameter (it doesn't append the & to the first value)

  • Jeff...I am having an issue with this as well.  I am not sure if I am doing it wrong or if there is an issue with the hyperlink that is created.  I am not trying to do a "fancy" jump where I have two CustomIdFields.  Just a standard jump...at least I think I am.  I am using custom entities.  I do not end up on the desired record.

    I have tried doing the jump from the screen as shown in your image above.  Although the correct id is in the URL, the system always defaults to the first record for the entity in the table.

    I then tried it with code in my asp page as follows....

    //Add Hyperlink to asp page

    var myGridColBlock = TaxList.GetGridCol("retax_Year");

    with (myGridColBlock)

    {

    JumpAction= 430;

    CustomActionFile = "css/css_taxsummary.asp";

    CustomIdField = "retax_retaxid";

    }

    Either method returns the same results..this is what my URL looks like when I am on the incorrect page...

    Note:  retax_retaxid=53 is the record I want to display.  However, the record that is being displayed is 52.  I cannot figure out why.

    My notes

    //From the 2021 year

    //CSS_TaxSummary.asp uses the block RETaxes_Details

    //Displayed record is retax_retaxid = 52 (which is the first record in the list)

    The actual URL

    http://xxx-crm/CRM/CustomPages/CSS/CSS_TaxSummary.asp?

    retax_retaxid=53&

    SID=77200900942234&

    F=xxx_Property/xxx_PropertySummary.asp&

    J=CSS/CSS_TaxSummary.asp&

    Key-1=58&

    Key0=58&

    Key37=60&

    Key50=16252&

    Key58=60&

    T=xxx_Property&

    HiddenRowCount=4&

    NextID=56&

    GridID=12840

    I considered changing ...CustomActionFile = "css/css_taxsummary.asp"; and forcing it to land where I need it to.  However, I was not sure how to modify the variable CustomActionFile to create my URL.  Would that make sense?

    Any assistance you can provide would be greatly appreciated.

  • Jeff...if you happen across my previous post on this.  I was able to resolve my issue.  

    The ASP pages developers course you ran today assisted me in following along to see that my "process" was correct.  I appeared to be doing everything right.  However, I was not landing on the correct record.  Therefore, I went back and looked at my landing page code.  I found my issue there.  

    My problem was the record id I was passing in the Arg object.

    //Add record object to the screen and Generate the HTML============================

    CRM.AddContent(Container.Execute(TaxRecord));

    Originally I had it defined as..

    var TaxRecord = CRM.FindRecord("USI_RETaxes", "retax_propertyid="+PropertyRecordID+"");

    The tax record is the "many" in a "one to many".  I didn't define which record to display (I guess because it was in my URL from the jump..I thought it would magically know..lol).  Since the system did not know which Tax Record to display, it just kept picking the first one that belonged to my property.

    My resolution---tell the system which tax record you want:

    Since the tax record ID was in the URL as a result of my CustomJump...I added the following to my landing page..

    var TaxID = Request.QueryString("retax_retaxid");

    AND I redefined TaxRecord as follows:

    var TaxRecord = CRM.FindRecord("USI_RETaxes", "retax_retaxid="+TaxID+"");

    Viola!  I am now landing on the correct record.

    Thank you for your assistance!

  • The easy fix for this is to just add a ? to the end of your 'Custom File'. So you'd have : eventpeople/eventpeoplesummary.asp? and then your 2 fields in the Custom ID Field separated by a ,: people_eventpeopleid,from_entity