CrossSiteLookup for external List / BDC / BCS
Hi,
i've allready ask this question in the past, but maybe there is still a way to achive this?
viewtopic.php?f=5&t=2007&p=6327&hilit=e ... list#p6327
I'm able to provision the CrossSite-Lookup via JavaScript as a Website-Column.
If i define it as a normal Lookup column, to point to a external List, i'm able to create a normal CrossSiteLookup field. I can search for items in the external list. But i cant save the value.
In the Screenshot "CrossSiteLookup_ExternalData_Lookup.png" you see the lookup with BdcIdentity as Lookup-Column and "Titel" as additional value.
The field schema looks like this:
If i defnie it as a normal BusinessData column, but with the csl for crosssitelookup as JSLink, it dosnt render and im getting this error:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei XgFcmC1xTrcISwPFCT.SGUPD7vHtpq3qLiS8d..ctor(XDocument )
bei Plumsail.CrossSiteLookup.JSInitializer.RWUTGCZ4U(HttpContext )
The schema for this field looks like this:
i've allready ask this question in the past, but maybe there is still a way to achive this?
viewtopic.php?f=5&t=2007&p=6327&hilit=e ... list#p6327
I'm able to provision the CrossSite-Lookup via JavaScript as a Website-Column.
If i define it as a normal Lookup column, to point to a external List, i'm able to create a normal CrossSiteLookup field. I can search for items in the external list. But i cant save the value.
In the Screenshot "CrossSiteLookup_ExternalData_Lookup.png" you see the lookup with BdcIdentity as Lookup-Column and "Titel" as additional value.
The field schema looks like this:
Code: Select all
<Field Group="_MyGroup" xmlns:csl="Plumsail.CrossSiteLookup"
csl:NewContentType=""
csl:NewText=""
csl:ItemFormatResultTemplate="function(item) {
 return '<span class="csl-option">' + item["{LookupField}"] + ' - ' + item["Titel"] + '</span>';
}"
csl:RetrieveItemsUrlTemplate="function (term, page) {
 if (!term || term.length == 0){
 return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},Titel&$orderby={LookupField} asc&$top=10";
 } return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},Titel&$orderby={LookupField}&$filter=startswith({LookupField},'" + encodeURIComponent(term) + "')&$top=10";
}"
csl:ShowNew="false"
ShowField="BdcIdentity"
List="{2f5a28ed-fd89-4cb5-8024-ae89defad50d}"
WebId="{a8d4e0de-9c70-467e-9105-2c5f1dbdb6b3}"
Mult="FALSE"
JSLink="~sitecollection/_layouts/15/plumsail/crosssitelookup/clienttemplates.js?field=TestColumnLookup"
Required="FALSE"
DisplayName="ExternalLookup"
Name="TestColumnLookup"
Type="Lookup"
ID="{35aba184-5e02-4cf2-9681-d64f5daef07f}"
SourceID="{a8d4e0de-9c70-467e-9105-2c5f1dbdb6b3}"
StaticName="TestColumnLookup" />
If i defnie it as a normal BusinessData column, but with the csl for crosssitelookup as JSLink, it dosnt render and im getting this error:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei XgFcmC1xTrcISwPFCT.SGUPD7vHtpq3qLiS8d..ctor(XDocument )
bei Plumsail.CrossSiteLookup.JSInitializer.RWUTGCZ4U(HttpContext )
The schema for this field looks like this:
Code: Select all
<Field Group="_MyGroup" xmlns:csl="Plumsail.CrossSiteLookup"
csl:NewContentType=""
csl:NewText=""
csl:ItemFormatResultTemplate="function(item) {
 return '<span class="csl-option">' + item["{LookupField}"] + ' - ' + item["Titel"] + '</span>';
}"
csl:RetrieveItemsUrlTemplate="function (term, page) {
 if (!term || term.length == 0){
 return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},Titel&$orderby={LookupField} asc&$top=10";
 } return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},Titel&$orderby={LookupField}&$filter=startswith({LookupField},'" + encodeURIComponent(term) + "')&$top=10";
}"
csl:ShowNew="false"
JSLink="~sitecollection/_layouts/15/plumsail/crosssitelookup/clienttemplates.js?field=TestColumnBusinessData"
Required="FALSE"
DisplayName="ExternalBusinessData"
Name="TestColumnBusinessData"
Type="BusinessData"
EnforceUniqueValues="FALSE"
ID="{0a7be7d8-efe5-4845-bce5-d330716f503a}"
SourceID="{a8d4e0de-9c70-467e-9105-2c5f1dbdb6b3}"
StaticName="TestColumnBusinessData"
Version="3"
SystemInstance="SQL_Archiv"
EntityNamespace="https://portal/teams/dev"
EntityName="Test_Content"
BdcField="Titel"
Profile=""
HasActions="True"
SecondaryFieldBdcNames="0"
RelatedField="Test_Content_ID12"
SecondaryFieldWssNames="0"
RelatedFieldBDCField=""
RelatedFieldWssStaticName="Test_Content_ID12"
SecondaryFieldsWssStaticNames="0" AddFieldOption="Default" />
- Attachments
-
- CrossSiteLookup_ExternalData_Lookup.png (4.72 KiB) Viewed 11161 times
- Nikita Kurguzov
- Posts: 889
- Joined: Mon Jul 03, 2017
Dear ragesoft,
Sadly, I do not think it is fully possible. There might be a way, but we did not manage to do it. If you do manage - please, let us know!
Sadly, I do not think it is fully possible. There might be a way, but we did not manage to do it. If you do manage - please, let us know!
Cheers
Hi Nikita,
what is a good starting point to realize a custom CSL for external Lookup fields?
My approche to overwrite the schema donst work until now. If i place the field inside a SPForm it also crashs the edit-form with a message "webpart page cannot be displayed"....
So, can i create somethink like a custom display template and reuse the init method of the crosssitelookup lib?
as far as i can see, the init starts in the jsinitializer for each field.
And then it is processed by "Plumsail.CSL.CrossSiteLookup.Init"
Can i use the "Template" "Custom" and some sort of JS to manipulate a default external lookup inside the spform?
The default html for a normal lookup looks like this (if i get it right):
Thx alot!
what is a good starting point to realize a custom CSL for external Lookup fields?
My approche to overwrite the schema donst work until now. If i place the field inside a SPForm it also crashs the edit-form with a message "webpart page cannot be displayed"....
So, can i create somethink like a custom display template and reuse the init method of the crosssitelookup lib?
as far as i can see, the init starts in the jsinitializer for each field.
And then it is processed by "Plumsail.CSL.CrossSiteLookup.Init"
Can i use the "Template" "Custom" and some sort of JS to manipulate a default external lookup inside the spform?
The default html for a normal lookup looks like this (if i get it right):
Code: Select all
<div class="plumsail-csl" id="cslRoom" fd_lookup_field="Title">
<img width="16" height="16" class="plumsail-csl-loading" style="display: none;" alt="" src="/_layouts/15/images/loadingcirclests16.gif"></img>
<div class="select2-container plumsail-csl-textbox select2-allowclear" id="s2id_ctl00_ctl45_g_74546812_70fc_45d2_b81a_f05476eeed5f_RoomField"></div>
<input name="ctl00$ctl45$g_74546812_70fc_45d2_b81a_f05476eeed5f$RoomField" tabindex="-1" title="" class="plumsail-csl-textbox" id="ctl00_ctl45_g_74546812_70fc_45d2_b81a_f05476eeed5f_RoomField" style="display: none;" type="text" value="<a onclick="OpenPopUpPage('https://portal/admin/_layouts/15/listform.aspx?PageType=4&ListId={fe7f98fa-f222-44d1-8226-96d5f01daa93}&ID=2&RootFolder=*', RefreshPage); return false;" href="https://portal/admin/_layouts/15/listform.aspx?PageType=4&ListId={fe7f98fa-f222-44d1-8226-96d5f01daa93}&ID=2&RootFolder=*">Schaltraum</a>"></input>
<br></br>
<a href="https://portal/admin/_layouts/listform.aspx?PageType=8&ListId=fe7f98fa-f222-44d1-8226-96d5f01daa93">Hinzufügen</a>
<br></br>
<script language="javascript" type="text/javascript"></script>
</div>
</div>
Thx alot!
Some addon:
Inside SPForm-form, i have the ability, to read and set the normal external Lookup:
So "all" i need now, is to overwrite the default rendering of this field
I want to init it s crosssitelookup and the the field value on submit or on change or what ever
Inside SPForm-form, i have the ability, to read and set the normal external Lookup:
Code: Select all
fd.field("ExternalLookup").value({key:'__bk090063007300330053003300430033006300d2004400430034008300d2008300440023004300d2001400530034003400d200140013005400230053005300440064001400930033006300',text:'Aramsamsam'})
I want to init it s crosssitelookup and the the field value on submit or on change or what ever
- Nikita Kurguzov
- Posts: 889
- Joined: Mon Jul 03, 2017
Dear Ragesoft,
I am not quite sure you could use Cross-site Lookup field here, it would probably be easier to just create your own field similar to it in functionality.
I guess you could try to use something like custom template - https://spform.com/custom-fields/custom ... nline-mode
Or maybe even create an HTML field with HTML control, and use JS to save value to SharePoint field, though I do guarantee that this will work.
I am not quite sure you could use Cross-site Lookup field here, it would probably be easier to just create your own field similar to it in functionality.
I guess you could try to use something like custom template - https://spform.com/custom-fields/custom ... nline-mode
Or maybe even create an HTML field with HTML control, and use JS to save value to SharePoint field, though I do guarantee that this will work.
Cheers
-
- Information
-
Who is online
Users browsing this forum: No registered users and 12 guests