Long story short:
I have a BDC application definition in my sharepoint 2007 server, which is pulling data from a SQL server.
Some of this data is the Employee Name.
What i'm trying to do, is that when a user is writing a portion of the employee name in the BDC column (in the custom list) and then clicks 'Check Names', it will show him a list of the available names it found. (Like this user column type:)
now, what happens in real life when using BDC, is that i dont see the list of available users.
Any help solving this issue would be greatly appreciated!
you could resolve this problem addin a Filter for the Name Field inside the Finder method, and setting the property "UsedForDisambiguation" with "true"
Ex: This filter applys to the employee name field:
<FilterDescriptors>
<FilterDescriptor Type="Wildcard" Name="Name">
<Properties>
<Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
</Properties>
</FilterDescriptor>
</FilterDescriptors>
Then, upgrade the BDC and when the user write the name and click the "Check names" button sharepoint will try to find the employee using the SpecificFinder (by ID), and if nothing is found then will try to find employees with this filter.
Regads!
Related
I just took over a project from a developer who has already left an organisation and I'm doing some maintenance work in the project. I can see the following code in a custom web part
CurrentUserInfo CurrentUser = MembershipContext.AuthenticatedUser;
DateTime ExpirationDate = CurrentUser.GetValue("aps_expirationdate", DateTime.Now);
The strange thing is, I cannot seem to find this custom field 'aps_expirationdate' anywhere in the system or in the database.
I checked the following places but couldn't find it.
Checked Membership module 'User' class and 'User - Settings' class
Checked 'User' module
Did a manual Sql Search in the database to find a table with a column name 'aps_expirationdate'
but I cannot seem to find this column anywhere and the other strange thing is, when I debug the code it does return a date value. No bugs in the code so, cannot say that this is an invalid column name. Where else should I look?
Based on what you've put in your initial question, it sounds as if the column was added manually and not through the Kentico UI. In order for the data access layer or the Kentico API to know that field exists, the definition has to be stored within the Kentico module class and not just in the database.
Here's what I'd do to correct this:
Find what table the field exists in. If you want the custom field to be part of the User or User Settings objects then they need to be added to either the CMS_User or CMS_UserSetting table.
If the field does not exist in either the CMS_User or CMS_UserSetting table, then go to the Modules app in the Kentico UI.
In the Modules App, go to Membership > Classes > Users > Fields and add the aps_expirationdate field.
If you have data in the field aps_expirationdate in the other table, write a query to copy it from the other table to the CMS_User table.
Now the API call as noted above will work.
If the field is already in the CMS_User or CMS_UserSetting table, then you will have to do the following:
In SSMS, rename that field to aps_expirationdate_old.
In the Modules App, go to Membership > Classes > Users > Fields and add the aps_expirationdate field.
Assuming you have data in the aps_expirationdate_old field in the CMS_User or CMS_UserSetting table, write a query to copy it from the other table to the CMS_User table.
Your last bullet point states you "Did a manual Sql Search in the database to find a table with a column name 'aps_expirationdate'". This contradicts what you state at the end of your question which states "I cannot seem to find this column anywhere". If you cannot find what table the aps_expirationdate exists in, then check out the following SO answer to find that column in a given database.
https://stackoverflow.com/a/4849704/698678
I have a sharepoint list "Notes" with columns [Title] and [Department].
I fetch values for column [Department] from another list called "Departments" (columns [Id] and [Name].
I want this:
Everytime I add new record in "Notes", I want to set permission for this record according to permission set on the value in column Department.
So, basicaly, I SOMEHOW need to first set permissions, which users or groups has rigths for each department in list "Departments". After that, I need to inherit this permission in "Notes" list from the value of [Department].
For example:
Departments list would look like this
Billing (some permission for users or groups)
Operations (some permission for users or groups)
Sales (some permission for users or groups)
I want to add new record in "Notes" like "Hello, new item" and I chose department "Billing".
Now, I want that only users/groups which has rigths to see Billing records can see this record. No one else.
And so on... as soon as I add new record with [Department] Operations, I want only users/groups which have rigths to see Operations record to see only these records.
Is there any solution for me? I think it should has something to do with sharepoint designer workflow "Replace permission" but I never figured it out how to set as described above.
Thanks,
Jan
As you mentioned, the "Replace List Item Permissions" Action is the only way to achieve this without creating a custom event receiver. Here is a blog post about it: http://spcycle.blogspot.com.tr/2012/01/how-to-create-workflow-to-change-item.html.
Having said that, I don't think securing sensitive information at item level in a shared list by using workflows is a good idea. What if the workflow stops working someday for some reason? Not a rare case when you upgrade your SP deployment to the next version... People would keep using that list by relying on the assumption that their information is secured and I can imagine that that can create a lot of trouble for some. Besides if the number of items in that list is going to be "high" you will have performance issues and potentially hit the soft limits of SharePoint.
I would create a separate list for each department to store their notes or create a folder in the Note List for each department, lock it down to the corresponding department and ask that department's users to put their notes into their department's folder.
Is it possible to create a Drop-down list in InfoPath which connects to Active Directory and fills the list with UNIQUE Department Values only (no repeating ones)
I need this for an InfoPath so when a user entering the data can pick one of the departments listed in the drop-down. Any help would be appreciated.
I've had a look at the people picker control, which works great for User names, but the department field is a separate field and has nothing to do with the user I pick, so I simply need a control which is populated by the unique Department codes in AD.
Any help would be appreciated.
You should really contact your administrator for this sort of information. You do not want a form to query every AD user to pull their department and get the unique values just to populate a drop down list. It is very possible to obtain the list of unique directories, however you should work with your administrator to populate this data to an XML web page or other similar solution and then connect your form to THAT data source through the form. The point is you are missing a step of obtaining the queried data.
With that said you can obtain the department of the user by querying the get user profile service to obtain the department name, elinating the need to even create a populated drop down list. See this article.
I'm very new to using SharePoint. I have created a custom list that I use as a linked table in Access. As the access database pre-existed, i need the column names in my SharePoint List to match those that are in the Access Database, otherwise all my Reports & Queries etc will not work.
Is there a way to have a separate display name for the columns in my SharePoint List.
For example, the column names are currently like "Innov_Desc", which isn't User friendly. When the users are adding "New Items", I need to display "Description" for example.
Any help will be appreciated.
Thanks
Derek
If you are trying to do this change from the the user interface (from settings), I'm afraid it's impossible. You will have to do this change in the code.
Please check the links below to get general idea of what is involve when naming columns:
Finding the internal name and display name for a list column
SharePoint Column/Field Display Names vs Internal Names
You can change the display name to something more user friendly via the UI after the column has been created. The internal name of the column will remain whatever it was at the point of creation.
I would like to know how I can filter a SharePoint library list based on current user login.
Suppose I have created the followings:
1) A SharePoint form library containing bunch of uploaded InfoPath form data.
2) The InfoPath form template contains a promoted text field called "TargetUser" to store user domain login (ex: DOMAIN\JOE) and every InfoPath form file in the library has a valid domain name stored in the "TargetUser" field.
I have created a custom view for the form library and would like to filter this view so only items whose "TargetUser" field matches current user's login ID are displayed.
I went to Edit View page to customize the view and tried to use the [Me] function but I got a "Filter value is not a valid text string" message instead when clicking OK. Apparently [Me] returns a Person/Group data type and the filter cannot compare its value to that of "TargetUser".
I tried using other text functions (ex: TEXT([Me],"") hoping to extract default string value from [Me]. The filter accepted the parameter without any error but the resulting fitlered list does not display any items at all.
I have googled this subject but I have not found any solution.
It would be greatly appreciated if anyone can help me to create a functional filtered list.
And FYI, my SharePoint 2007 installation is just WSS 3.0 + Form Server. I do not have MOSS 2007 (so no MOSS 2007 web parts or web services).
Thank you.
Jason
Is there any reason your TargetUser field is a text field instead of a People or Group field?
The [Me] identifier can be used to filter list items based on a People or Group column, but not on text fields.
Well. It looks like no one here has the answer.
Nevertheless, another user on Technet forum has a very good solution.
See this link for more information