Basic Code Structure of an Edit Page

1 minute read time.
We should now consider the creation of an edit screen for a Record using an ASP page.

The structure is simpler.


var myBlock = eWare.GetBlock('OpportunityDetailBox'); 
var myRecordId = eWare.GetContextInfo('Opportunity','oppo_opportunityid'); 
//var myRecordId = Request.QueryString('oppo_opportunityid'); 
var myRecord = eWare.FindRecord('Opportunity','oppo_opportunityid='+myRecordId); 
eWare.AddContent(myBlock.Execute(myRecord)); 
Response.Write(eWare.GetPage());


The idea to always bear in mind is context. If you are dealing with a standard system entity (e.g. Company, Person, Opportunity etc) then you will be able to use the eWare.GetContextInfo() method to look for the primary key value for the record in context. From this you can then retrieve the record to be edited.

If you are working with a custom entity, perhaps one created using the Advanced Customization Wizard then you will need to get hold of the context information in another way as custom entities can't be accessed using the eWare.GetContextInfo() method.

The context information is held in the Key values of the hyperlink's query string.

The below code shows how to get hold of the correct key value that is contained in the querystring.


var strKeyID= "oppo_opportunityid"; 
var Id = new String(Request.Querystring(strKeyID)); 
var intRecordId = 0; 
if (Id.indexOf(",") > 0) 
{ 
var Idarr = Id.split(","); 
intRecordId = Idarr[0]; 
} 
else if (Id != "") 
{ 
intRecordId = Id; 
}


N.B. In ASP pages that are built using the Advanced Customization Wizard the querystring value that holds the context id value of the custom entity in context is "key58".
Parents
  • Thanks Jeff. I thought I covered all those steps...but still no record.

    1) Establish context - it needs to know what record is to be displayed in the screen.

    Context ---> var AddressID = Request.QueryString("Key58"); (this returns the ID that I need)

    2) Retrieve the record object using FindRecord

    Retrieve the record ---> var AddressRecord = CRM.FindRecord("address", "addr_addressid="+AddressID);

    var LocationAlias = AddressRecord.addr_localias;

    Join it to the context ---> var Arg = "alias='"+LocationAlias+"'";

    3) Execute the screen and pass in the record to be displayed.

    Execute the screen/pass the record (Arg) ---> CRM.AddContent(myBlock.Execute(Arg));

    4) Generate the HTML and send to the browser

    Response.Write(CRM.GetPage());

    The code all works fine for the list block but not the screen block. Your message appears to say that I need to tell it what record. However, I feel I did in item 2 and then I passed it in item 3. If it worked for the list block should it not also work for the screen block? I must not be understanding something that I thought I understood. Am I on the right track?

    Any assistance you can provide would be greatly appreciated.

    Thanks!

Comment
  • Thanks Jeff. I thought I covered all those steps...but still no record.

    1) Establish context - it needs to know what record is to be displayed in the screen.

    Context ---> var AddressID = Request.QueryString("Key58"); (this returns the ID that I need)

    2) Retrieve the record object using FindRecord

    Retrieve the record ---> var AddressRecord = CRM.FindRecord("address", "addr_addressid="+AddressID);

    var LocationAlias = AddressRecord.addr_localias;

    Join it to the context ---> var Arg = "alias='"+LocationAlias+"'";

    3) Execute the screen and pass in the record to be displayed.

    Execute the screen/pass the record (Arg) ---> CRM.AddContent(myBlock.Execute(Arg));

    4) Generate the HTML and send to the browser

    Response.Write(CRM.GetPage());

    The code all works fine for the list block but not the screen block. Your message appears to say that I need to tell it what record. However, I feel I did in item 2 and then I passed it in item 3. If it worked for the list block should it not also work for the screen block? I must not be understanding something that I thought I understood. Am I on the right track?

    Any assistance you can provide would be greatly appreciated.

    Thanks!

Children
No Data