Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
customization:lime-links [2014-01-23 13:48]
Martin Berg
customization:lime-links [2018-12-02 22:09] (current)
Line 1: Line 1:
-====== LIME links ====== +====== Lime links ====== 
-LIME links are direct shortcuts to a record or a feature in LIME Pro. Examples of where LIME links are used in LIME Pro is in the "Please call" feature, Super Search results window and in action pads.+Lime links are direct shortcuts to a record or a feature in Lime CRM. Examples of where Lime links are used in Lime CRM is in the "Please call" feature, Super Search results window and in action pads.
  
-You can also build your own LIME links. The following links could for example be found in a standard HTML file+You can also build your own Lime links. The following links could for example be embedded in web page
  
 <code><a href="limecrm:company.lundalogik.cosmo?command=open&name=Greenland%20Fir%20Trees%20AB">Greenland Fir Trees AB </a></code> <code><a href="limecrm:company.lundalogik.cosmo?command=open&name=Greenland%20Fir%20Trees%20AB">Greenland Fir Trees AB </a></code>
Line 9: Line 9:
  
 ===== Format ===== ===== Format =====
-LIME link follows this formatting scheme:+Lime link follows this formatting scheme:
  
 <code>limecrm:CLASS.DATABASE.LIMESERVER?command=COMMAND[&PARAMETER=VALUE]</code> <code>limecrm:CLASS.DATABASE.LIMESERVER?command=COMMAND[&PARAMETER=VALUE]</code>
Line 15: Line 15:
 ^ Parameter ^ Description ^ ^ Parameter ^ Description ^
 | CLASS | Database name or label of a LIME table.| | CLASS | Database name or label of a LIME table.|
-| DATABASE | The name of the LIME Pro database. | +| DATABASE | The name of the Lime CRM database. | 
-| LIMESERVER | The name of the LIME Pro server. |+| LIMESERVER | The name of the Lime CRM server. |
 | COMMAND | The command to execute. | | COMMAND | The command to execute. |
 | PARAMETER | Parameter name. Every command accepts different parameters, more info below. | | PARAMETER | Parameter name. Every command accepts different parameters, more info below. |
 | VALUE | The value to use for the specified parameter. | | VALUE | The value to use for the specified parameter. |
  
-An example of a LIME link that opens a specific record and where CLASS refers to the database name of a table:+An example of a Lime link that opens a specific record and where CLASS refers to the database name of a table:
 <code>limecrm:company.lundalogik.cosmo?command=open&idcompany=1001</code> <code>limecrm:company.lundalogik.cosmo?command=open&idcompany=1001</code>
  
Line 29: Line 29:
 Executing the link will open the company record having ID 1001 in the database //Lundalogik// on the server named //cosmo//. Executing the link will open the company record having ID 1001 in the database //Lundalogik// on the server named //cosmo//.
  
-===== Commands =====+===== Built-in commands =====
 ==== Open ==== ==== Open ====
-The //open// command opens the specified record in LIME Pro. The record ID must be specified as a parameter having the name //id<<classname>>//, e.g. //idcompany//.+The //open// command opens the specified record in Lime CRM. The record ID must be specified as a parameter having the name //id<<classname>>//, e.g. //idcompany//.
  
 Available parameters: Available parameters:
  
 ^ Parameter ^ Description ^ ^ Parameter ^ Description ^
-| idrecord/id[CLASS] | ID of the record to open. If record ID is the only parameter it does not have to be named and the LIME link can be formatted like this: ''limecrm:company?1001''. |+| idrecord/id[CLASS] | ID of the record to open. If record ID is the only parameter it does not have to be named and the Lime link can be formatted like this: ''limecrm:company?1001''. |
 | activeexplorer | Specifies which tab that is to be set as the active tab when the record is opened. Note that it is the name of the relation field that should be specified here. | | activeexplorer | Specifies which tab that is to be set as the active tab when the record is opened. Note that it is the name of the relation field that should be specified here. |
-| field/value pair | Use only if the record ID is not available. LIME Pro will try to search for the record to open using the information as conditions in a filter. Only the first matching record will be shown. |+| field/value pair | Use only if the record ID is not available. Lime CRM will try to search for the record to open using the information as conditions in a filter. Only the first matching record will be shown. |
  
 === Examples === === Examples ===
Line 62: Line 62:
 | ownerclass | The name of the class of the parent record. | | ownerclass | The name of the class of the parent record. |
 | ownerid | The ID of the parent record. | | ownerid | The ID of the parent record. |
-| ownersource | The parent record ID can be automatically set by LIME Pro. Valid values are ''activeinspector'' to specify the currently open record or ''activeexplorer'' to specify the currently selected record in a list. | +| ownersource | The parent record ID can be automatically set by Lime CRM. Valid values are ''activeinspector'' to specify the currently open record or ''activeexplorer'' to specify the currently selected record in a list. | 
-| ownerfield | The name of the field that links to the parent record. If not specified LIME Pro will attempt to autodetect this. |+| ownerfield | The name of the field that links to the parent record. If not specified Lime CRM will attempt to autodetect this. |
 | autosave | When set to ''1'' the record will be saved without showing it afterwards (if this fails it will be shown to the user anyway). When set to ''0'' the user will have to close and save the record manually. | | autosave | When set to ''1'' the record will be saved without showing it afterwards (if this fails it will be shown to the user anyway). When set to ''0'' the user will have to close and save the record manually. |
 | field/value pair | Specify values for fields in the record. | | field/value pair | Specify values for fields in the record. |
Line 79: Line 79:
  
 ==== MailTo ==== ==== MailTo ====
-The //mailto// command creates a new e-mail message in the same manner as when an e-mail address is clicked by the user in LIME Pro. The following link creates an e-mail for //Nisse// at //Manpower//:+The //mailto// command creates a new e-mail message in the same manner as when an e-mail address is clicked by the user in Lime CRM. The following link creates an e-mail for //Nisse// at //Manpower//:
  
 <code>limecrm:person.lundalogik.cosmo?command=mailto&address=nisse@manpower.se</code> <code>limecrm:person.lundalogik.cosmo?command=mailto&address=nisse@manpower.se</code>
Line 94: Line 94:
  
 ==== CallTo ==== ==== CallTo ====
-By using the //callto// command LIME Pro is instructed to dial the specified phone number. This can typically be used to easily dial a number from an action pad.+By using the //callto// command Lime CRM is instructed to dial the specified phone number. This can typically be used to easily dial a number from an action pad.
  
-The following is a LIME link that dials Lundalogik Customer Support when executed:+The following is a Lime link that dials Lundalogik Customer Support when executed:
  
 <code>limecrm:person.lundalogik.cosmo?command=callto&number=+46462704800</code> <code>limecrm:person.lundalogik.cosmo?command=callto&number=+46462704800</code>
Line 106: Line 106:
  
 ==== Appointment ==== ==== Appointment ====
-The ''appointment'' command creates a new meeting and a to-do item in the same manner as when using the //New meeting...// command is used in LIME Pro+The ''appointment'' command creates a new meeting and a to-do item in the same manner as when using the //New meeting...// command is used in Lime CRM
  
-The following example creates an appointment with the person having record ID 1001 and sets the subject to //LIME Pro kick-off//:+The following example creates an appointment with the person having record ID 1001 and sets the subject to //Lime CRM kick-off//:
  
 <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=person&ownerid=1001&subject=Lime%20kick-off</code> <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=person&ownerid=1001&subject=Lime%20kick-off</code>
Line 131: Line 131:
 <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=company&ownerid=2001</code> <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=company&ownerid=2001</code>
  
-Create a new appointment with the company having record ID 2001 and set the subject to //LIME Pro kick-off//:+Create a new appointment with the company having record ID 2001 and set the subject to //Lime CRM kick-off//:
 <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=company&ownerid=2001&subject=LIME%20Pro%20kickoff</code> <code>limecrm:todo.lundalogik.cosmo?&command=appointment&ownerclass=company&ownerid=2001&subject=LIME%20Pro%20kickoff</code>
  
Line 156: Line 156:
 | message | Log message. | | message | Log message. |
  
 +===== Custom commands =====
 +In addition to the built-in commands it is possible to define custom commands that are processed in VBA by listening to and handling the ''Application.ExecuteURL'' event which receives the following parameters:
 +
 +^ Parameter ^ Data type ^ Description ^
 +| Class | LDE.Class | The class that the Lime link concerns. |
 +| Command | String | The name of the command. |
 +| Parameter | String | The parameter string. |
 +| Handled | Boolean | Should be set to ''True'' in the event handler if the command could be processed. If this is not done Lime CRM will display an error message saying that the command could not be executed. |
 +
 +Given the following Lime link:
 +
 +<code>limecrm:company.MyDatabase.MyServer?command=mycommand&param1=1501&param2=1601</code>
 +
 +...the event parameters will receive the following values:
 +
 +^ Parameter ^ Value ^
 +| Class | The ''company'' class. |
 +| Command | mycommand |
 +| Parameter | command=mycommand&param1=1501&param2=1601 |
 +
 +=== Example ===
 +The following code sample shows how a custom command that opens a web browser with the URL set to the contents of any present field having the "Homepage, work" label.
 +
 +<code vb>
 +Private Sub Application_ExecuteURL(ByVal Class As LDE.IClass, ByVal Command As String, ByVal Parameters As String,                                                     Handled As Boolean)
 + 
 +   ' Handle Lime shortcuts on the following format:
 +   '    limecrm:company.MyDatabase.MyServer?command=openwebsite&id=15099001
 + 
 +   Dim fieldUrl As LDE.Field
 +   Dim rec As LDE.Record
 +   Dim viewUrl As LDE.View
 +   Dim i As Integer
 +   Dim parameter As String
 +   Dim parameterArray() As String
 +   Dim recordId As Long
 + 
 +   If Command = "openwebsite" Then
 +     ' Find the business homepage field by looking at field labels
 +       Set fieldUrl = Class.Fields.Lookup(FieldLabelEnum.lkFieldLabelBusinessHomePage,
 +                                               LookupFieldEnum.lkLookupFieldByLabel)
 +     
 +       If Not fieldUrl Is Nothing Then
 +           ' Find the id=xxxx parameter and extract the record ID
 +         
 +           parameterArray = Split(LCase(Parameters), "&")
 +     
 +           For i = LBound(parameterArray) To UBound(parameterArray)
 +               If Left(parameterArray(i), 3) = "id=" Then
 +                   recordId = CLng(Mid(parameterArray(i), 4))
 +                   Exit For
 +               End If
 +           Next
 +         
 +           If recordId <> 0 Then
 +               ' Open the record and retrieve the web site address
 +         
 +               Set rec = New LDE.Record
 +               Set viewUrl = New LDE.View
 +         
 +               viewUrl.Add fieldUrl.Name
 +         
 +               rec.Open Class, recordId, viewUrl
 +             
 +               If Len(rec(fieldUrl.Name)) > 0 Then
 +                   ' Launch the web browser
 +                   Shell rec(fieldUrl.Name)
 +                 
 +                   ' Tell Lime that we were able to successfully handle the event
 +                   Handled = True
 +               Else
 +                   MsgBox "The specified record is not associated with a web site.", vbInformation
 +               End If
 +           End If
 +       End If
 +   End If
 + 
 +End Sub
 +</code>
 +
 +===== Javascript support =====
 +To simplify the creation and execution of Lime links Lundalogik provides a Javascript helper class that can be found in the ''scripts'' folder located in the actionpad folder.
 +
 +==== Execute ====
 +This function can be used with all commands and has the advantage that only one call to LimeUrl needs to be done to both create and execute the link command.
 +
 +''LimeUrl.Execute = function(classname, command, options)''
 +
 +^ Parameter ^ Description ^
 +| classname | The class that the command should operate on. |
 +| command | The command to execute. |
 +| options | An object with parameters to the command. All parameters need to be named and have a value. This object can also have a member called ''fields'' that specifies field/value pairs for the command. |
 +
 +=== Examples ===
 +Open the company record having ID 1001 and set the tab pointed to by the //employees// relation field to active:
 +<code javascript>
 +LimeUrl.Execute('company', 'open', {
 +             idrecord: '1001',
 +             activeexplorer: 'employees'
 +           });
 +</code>           
 +
 +Create a new history record and associate it with the currently selected company record:    
 +<code javascript>
 +LimeUrl.Execute('history', 'new', {
 +             ownerclass: 'company',
 +             ownersource: 'activeexplorer'
 +           });
 +</code>           
 +
 +The same as above, but for embedded use in e.g. an actionpad:           
 +<code html>
 +<a href="#" onclick="javascript:LimeUrl.Execute('history', 'new', {
 +             ownerclass: 'company',
 +             ownersource: 'activeexplorer'
 +           });">Skapa historik</a>
 +</code>
 +==== Create ====
 +Creates a Lime link with the specified command as its only parameter.
 +
 +''LimeUrl.Create = function(classname, command)''
 +
 +^ Parameter ^ Description ^
 +| classname | Name of the class the link concerns. |
 +| command | The command that the link should execute. |
 +
 +=== Example ===
 +To create a link that creates a new history record:
 +<code javascript>
 +LimeUrl.Create('history', 'new');
 +</code>
 +This results in the following link:
 +<code>
 +limecrm:history.MyDatabase.MyServer?command=new
 +</code>
 +
 +==== AddParameter ====
 +Adds a parameter to a link that was created using a call to ''LimeUrl.Create''.
 +
 +''LimeUrl.AddParameter = function(name, value)''
 +
 +^ Parameter ^ Description ^
 +| name | Name of the parameter. |
 +| value | Value of the parameter. |
 +
 +=== Example ===
 +To add parent record and contact person to the link that was created in the previous example:
 +
 +<code javascript>
 +LimeUrl.AddParameter('ownerclass', 'company');
 +LimeUrl.AddParameter('ownerid', '1001');
 +LimeUrl.AddParameter('contactperson', 'Johnny Doe');
 +</code>
 +This results in the following link:
 +<code>
 +limecrm:history.MyDatabase.MyServer?command=new&ownerclass=company&ownerid=1001&contactperson=Johnny%20Doe</code> 
 +
 +==== Click ====
 +Executes the Lime link created using ''LimeUrl.Create'' and optionally ''LimeUrl.AddParameter''. This method does not accept any arguments.
 +
 +=== Example ===
 +<code javascript>
 +LimeUrl.Click();
 +</code>
  • Last modified: 7 years ago
  • (external edit)