​​​​​​​​​​​​​​​​​​​​​​​ SPARK Community Home > Welcome ​​

​​​​​​​​​​​​​ Latest Videos

Nov 15 , 2022
​​Integration & Advanced Controls

Creating Fabulous Forms for SharePoint External lists using SPARK Forms Builder

This video will show you how you can forms for SharePoint External lists. You can create a complete professional UI, representation and logic for your external databases using only SharePoint and SPARK Forms in a matter of minutes, the external list form accepts all types of controls the same as a regular custom list, which means that you can add a complex and an advanced controls to your form which will reflects their data to the external database, for example you can create forms containing cascading Lookup fields, Richtext, Dropdown, People & Groups Picker, External data picker, SQL/XMl/Web services connectors, Repeaters, Tabs, Checkbox, Toggle Switch, Radio button, D-Signatures, Barcodes, Advanced Lookup …etc. This magnificent capability will enable the designer to create mixed-data forms in which part of its controls are dealing with external databases while the other part is consuming data from the SharePoint lists which means you can do amazing combinations of functionalities in a single form. You can connect with an external HR Database while you are using a cascading for the countries\states\cities from custom lists reside in the SharePoint Farm. The form performance will be high and responsive. One of SPARK Forms great features you need to know about when using them with external lists is enabling the attachments for the external lists which is not an OOTB feature in the SharePoint.

Watch more videos​​

Latest Articles

Discussion Space

  
Picture Placeholder: Hassan Noun
  • Hassan Noun
13/29/2022 11:39 AM

​How to update tooltip text for Advanced Lookup​ Control at run time?

Jim Hidson.5/5/2022 2:21 AMNoCodes & Scripts
70.948854842299
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
04/28/2022 8:23 AM

from a specific page on the central admin page, you can show what sites our solution feature is activated on.

Open the central administration web application.

Click on SPARK Forms Builder Management link

Click on License Activation Details link

You will have a page that lists all sites/site collection/web applications that have SPARK Forms Builder Feature activated on.

If you clicked on the Deactivate link, you will open that specific site features page.

Check out below screenshot.




4/28/2022 8:23 AMNoSetup & Installation
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
04/28/2022 7:58 AM
You can do that using the workflow functions, like this:
  1.  Create a workflow variable of type integer and include the following workflow functions to get the day differences between now and the date time column value:
    $func-Round($func-DateDiffDays($func-Now(),$WFItemFields(DateTimeField)))

  2. Same thing for the Hours difference using the following functions:
    $func-Round($func-DateDiffHours($func-AddDays($func-Now(),$func-Round($func-DateDiffDays($func-Now(),$WFItemFields(DateTimeField)))),$WFItemFields(DateTimeField)))

  3. Set these workflow variables in the timeout settings page fields like this:
  4. Your workflow should look like this:





4/28/2022 7:58 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
03/14/2022 2:53 AM

​Yes, you can do this on SPARK Workflow by following these steps:

  1.  Us the function IsGroupMember in the “If Condition” activity like this:
  2. For example you can get the user ID from the list field like this by selecting It from the (fx) dialog:
    $func-IsGroupMember(Employee login,Group Name)
    Example: $func-IsGroupMember($WFItemFields(EmployeeLogin),"SPARK Owners")



3/14/2022 2:53 AMNoSPARK Workflow
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
03/9/2022 1:33 AM

The default accordion header is a background image not a color, so you need to set it to none in the CSS like this:
 
color: rgb(255, 255, 255);  !important; background-color: rgb(0, 32, 91) !important; font-weight: bold;
background-image: none !important;

 

In Design and Preview
 

 After Saving and Publishing
 
3/9/2022 1:33 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
03/7/2022 3:03 AM

​The best permission level to have the user able to add and edit items on a list without showing SPARK Forms top ribbon button is “Contribute”.




If you have a custom permissions level you should make sure that the “Manage Lists” option is unchecked:



Also you need to make sure that user is not a site admin or in an site admin group otherwise it will override custom permissions and have the full permission over the list.​


3/7/2022 3:03 AMNoGeneral
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
02/23/2022 5:08 AM
Yes ,by using JS script.
  1. Click on the Company XML Connector control and open the rules manager dialog.
  2.  You should have a ready created rule called QueryRule3, click on it:

  3. Update the action script to be like this:




    The new script will be like this:
     
    function addBlankSelection(){
      var select = document.getElementById('XML_Company');
    var option = document.createElement('option');
    option.text = option.value = 'Select a Company...';
    select.add(option, 0);
    select.selectedIndex = 0;
    } 
    executeXMLQuery(XML_Company, addBlankSelection);
     
    Create a function to be called synchronously, because XML connectors load data asynchronously to speed up loading forms. This way you will have the function executed after loading the XML data being populated in the dropdown list and the new value will be posted at index 0.
     
    Note:  Save this script somewhere as it might get reset if you changed the type of the XML or the “Execute on” properties in the control’s settings dialog. Of course you could always get back the old configuaration if you restored the form from the form’s history.
     ​​
2/23/2022 5:08 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/21/2021 2:00 AM

​In case you have multiple values in an XML schema you have to include the d:/results like the following screenshot:


The workflow variable values would be like this:​
ID=10
Name=SPARKNIT Admin
​Ver label=2.0
status=OK​

12/21/2021 2:00 AMNoSPARK Workflow
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/20/2021 7:24 AM

​Hidden and read-only columns should not appear in any activity, it’s not the best practice to force saving data on them as they are intend for an internal usage only.
Working on such fields might cause your list to be unstable and corrupted, so you need to be extra careful when working on them.
For on premise version of SPARK Workflow:​



for O365 version:

For the content type: We have allowed updating the built-in hidden column “ContentTypeId”, like this


You need to set the GUID value of the content type, and you can get it like this:
List settings >> select the content type >> copy content type ID from the link parameter (ctype)


Use this activity(Set column Value/ update Item) to update content type field by ID​

12/20/2021 7:24 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/13/2021 4:12 AM

The rule to update the list item:

updateListItems('http://sparknit.com/sites/site_Name/list_name','11aaddb3-2ffc-4436-be1b-631e746fdcc3','<Query><Where><Eq><FieldRef Name="ID" /><Value  Type="Counter" >1</Value></Eq></Where></Query>',['Name'],[getSiteCollectionUserID(PeoplePicker1)]);

12/13/2021 4:12 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 6:42 AM

​First, create a test group of two users (you and a test user account) so you can isolate the problem if it’s related to group configuration and make this group viewable by all users, otherwise it won’t be accessed by all users and the rule condition would be always false.
Second, create a test form with just a panel and a label inside, to isolate any other factors that might affect the rule in your production form.
just create one formatting rule to hide the panel if the current logged in user is a group member, I know this is the opposite of what you want, but it’s easier to test this way in order to isolate condition syntax issue.
Remove your user or the test user account from the group and test.
You can set another formatting rule to show the section.
Do your tests based on that and I’m sure you’ll figure it out.​

12/5/2021 6:42 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 5:42 AM
​​

The maximum default number of lookup columns per list based on MS best practice is 8, otherwise; it would show this error if you try to use more.

This is not related directly to SPARK Forms as this limitation is configured by MS to maintain best performance on SP farm and prevent resources consuming.

You can change the maximum lookup columns value in your central administration page on your own responsibility and you should be aware of such decision.

You  can change it like this:

Central Administration > Application Management > Manage Web Application > Your Web Application > General Settings > Resource Throttling.​

12/5/2021 5:42 AMNoTroubleshooting
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 4:42 AM

​make sure that you’ve activated SPARK Workflow on that site.
Go to the site settings, Site Actions à manage Site features and make sure SPARK Workflow is activated, if not click on the activate button. If it’s activated, then deactivate and activate again.
The user must have at least manage permissions on the site to be able to create workflow and see the button.

12/5/2021 4:42 AMNoSPARK Workflow
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 2:03 AM

​Create a choice column in the list  with “allow multiple selections” property checked like this:

In the form’s canvas, add checkboxlist control and map it to the column 


Publish and test:


This should work with you as well.


12/5/2021 2:03 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 1:44 AM

In order to change the color of CheckBoxList items you can use this code in an action Form’s rule, even=onLoad
 
try{
var checkBoxList = $('[id$="Checkboxlist1"]');
        var options = checkBoxList[0].getElementsByTagName('input');
 
        for (var i = 0; i < options.length; i++) {
           
               if (i==0) { options[i].parentElement.style.color = 'red';}
          if (i==1) { options[i].parentElement.style.color = 'green';}
          if (i==2) { options[i].parentElement.style.color = 'blue';}
         
            
        }
 
} catch (error) {
}
 
However, you cannot map this type of controls to form variables especially if it is multiple values, this control must be mapped to a multiple values choice type column in a list. It just inapplicable to use it the way we did with dropdown list.
 

 ​
12/5/2021 1:44 AMNoCodes & Scripts
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 1:43 AM

​In general you can’t save more than one record/item in the list or library for the form. What you need is Master-details method, which represents the relation of (one To many) in the database definition.
So the master list will have the as ex.  student main information and the details list will be have the different answers of the this student. The detailed list will be linked to the master child list with a master id (like primary key in DB).
 
The best approach to do this is using the repeater or DataTable control, you can specify the master id column in the child list when you configure the repeater.
 
Have a look at these videos which will help you build your case and to start thinking in the right direction:
 
https://www.youtube.com/watch?v=Hb2uJyKg7sE&t=52s
 
https://www.youtube.com/watch?v=dRybbrFPmOM&t=3s
 
https://www.youtube.com/watch?v=c9tESFL-LQo&t=67s
 
https://www.youtube.com/watch?v=gS48oeg09AM&t=6s
 
https://www.youtube.com/watch?v=e4hAZ7NeVtw&t=34s​
 ​

12/5/2021 1:43 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/5/2021 1:38 AM

The actions history log table default’s behavior is to always appear even on new form. If you want to hide it on new form mode, you can create a formatting rule on the panel that handles all the log controls components inside, like this:
Click on the actions log main panel , click on control rules and create a formatting rule like thi​s.


12/5/2021 1:38 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/2/2021 7:30 AM

​Add an new panel, it will set it at the bottom of the table, click on any empty area of the new panel and drag it up or down to the position you want between existing panels and continue your work from there.
If you can’t do that, there might be an issue with your design such as an external panel covering the area or some hidden control that are on the panel moving way. You can create a test PanelsTable control and check this out on it.​

12/2/2021 7:30 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/2/2021 7:20 AM

​If you want to just save an item/record in another list without the need to retrieve it back, you can simply create an action rule on a button and change the event to onClick.

Leave the condition blank.

In the action script, use the newListItem() function to save data in another list. Please refer to the function description and the  Use Cases Guide for more information on how to use the function.

If you want to retrieve this record in the form once opened again, then you need to query the data from that list when the form load. Create an action form rule, event onLoad, and use the function getListItemData() to do get the function and populate data on the forms control again.

 

But if you want to save and retrieve multiple records, then you need to have master-child/master-details functionality, which represents the relation of (one To many) in the database definition.

So the master list will have the main form information and the details list will be have the different records related to the main form. The detailed list will be linked to the master child list with a master id (like primary key in DB).

 

The best approach to do this is using the Repeater or DataTable control, you can specify the master id column in the child list when you configure the repeater.

 

Have a look at these videos which will help you build your case and to start thinking in the right direction:

 

https://www.youtube.com/watch?v=Hb2uJyKg7sE&t=52s

 

https://www.youtube.com/watch?v=dRybbrFPmOM&t=3s

 

https://www.youtube.com/watch?v=c9tESFL-LQo&t=67s

 

https://www.youtube.com/watch?v=gS48oeg09AM&t=6s

 

https://www.youtube.com/watch?v=e4hAZ7NeVtw&t=34s​

 

12/2/2021 7:20 AMNoSPARK Forms
0
12/2/2021 4:19 AM
  
Picture Placeholder: Jim Hidson.
  • Jim Hidson.
012/2/2021 5:15 AM

​This is an internal system error, not related directly to SPARK Forms, this is when you call a request between .Net framework and Oracle. SP has nothing to do with this as the call is generated from the .Net as I said and we have many clients integrated their forms with Oracle.
Also you can use the MSSQL linked server feature to connect to Oracle and you can connect to MSSQL instead of Oracle if you were unable to figure out how to solve it.
We don’t interact or support internal integration issues, as this is a very sensitive topic related to external servers other than SP and have many concerns with regards to security and systems stabilities.
So you need to consult with your DBA about the connectivity between servers.
Check this link out:
https://stackoverflow.com/q​uestions/19354015/error-system-data-oracleclient-requires-oracle-client-software-version-8-1-7-or​
 ​

12/2/2021 5:15 AMNoTroubleshooting
0
12/2/2021 4:19 AM
1 - 20Next