Friday, October 9, 2015

InfoPath 2013 Forms - Auto Expanding Text Fields

Goal

Create a text field that is self-expanding, either plain text or rich text fields.

Plain text

  • Right click on the control and select Text Box Properties .
  • Under the "size" tab, located height and set to "auto"


If you set it to be "50" which is the default, it will use scroll bars after the height is reached

So far, in Microsoft Edge - plain text boxes are not working correctly.  You hit "enter" and it doesn't go to the next row.   If you switch to Internet Explorer, then it works.

Rich Text

  • Size does NOT have to be changed for Rich Text, so you don't have to have the skinny one line boxes as you do with plain text

Issue 1 - Toolbar is required

You must have the "Show InfoPath commands in Ribbon or Toolbar" option selected.
  • Go to "File" and "Advanced form options"
  • Select "Category"
  • Make sure the "Show InfoPath Commands in Ribbon or toolbar" is selected

If the toolbar is not turned on, Chrome and Microsoft Edge will revert back to plain text.  IE will let you use rich text, but will not auto-expand.

Issue 2 - Enhanced rich text must be enabled

Another requirement is to have "Enable enhanced rich text content such as tables, images and hyperlinks" selected under Display properties for the Rich Text control.


 
Without this installed, you still do not get auto-expanding fields.

Friday, March 14, 2014

Unable to add users to Farm Administrator's Group SharePoint 2013

In SharePoint 2010, you got a nice error message when you try to add a user to the Farm Administrators group in Central Administration.

In SharePoint 2013, not so much:


This happens even if you are a member of the Farm Administrators group.
If you look up the event in the ULS viewer, you see the answer (which is the same for SharePoint 2010 as well).

Local administrator privilege is required to update the Farm Administrators' group.

So add your account or use an account that is a member of the local admin group on your SharePoint front-end and you should be good to go. 

Best practice is to just use a local admin account to add the user and NOT add yourself to the local administrators group.

Also check out: 

You cannot add users and groups to the Farm Administrators group after you remove the BUILTIN\Administrators group from the Farm Administrators group in Windows SharePoint Services 3.0
http://support.microsoft.com/kb/926320

Thursday, March 13, 2014

Moving SharePoint Users Between Groups

How do I move users between groups?

I see this question a lot on forums and have been frustrated myself.   The solutions out there are mostly programmatically moving users between groups or copying them one by one, or better yet - create an AD group and use that to manage your group.

A simple answer is right on the rights page.   Just select all the users you want to move, and then go to Actions / E-mail users:

Now you have unique names you can cut and paste into the new group, already semi-colon delimited and guaranteed to be unique.   

Limitations

Unfortunately, there are limits - only 20 users at a time seem to be all I can create using this method.  Explanations differ on why this is true, but I have not found a workaround.

There are also limits built into the mailto function used by SharePoint  -  2083 character length:

function BtnEmailClick(viewId)
       {ULSJyi:; var emails = GetSelectedUsers(viewId, "email", ";");
   if (emails.length == 0) {
  alert(noUserEmailSelectedMsg); return false; }
  emails = "mailto:" + escapeProperly(emails);
  if (emails.length > 2083) { alert(tooManyUserEmailSelectedMsg); return false; } window.location =   emails; return false; }

So for really long lists - either rinse and repeat for every 20 users, or go the programmatic way.

Wednesday, August 17, 2011

Problems running Get-CSApplicationContact script

You will ONLY see this problem if you started with OCS, then upgrade to OCS R2 and then to Lync.

When looking for your RGS contacts, you may have gone to:
http://blogs.technet.com/b/csps/archive/2011/02/09/scriptrgsrestore.aspx

And ran this script.   Unforunately, when you run it, you may see:

LDAP://CN=Application Contacts,CN=RTC Service,CN=Microsoft,CN=System," + $domainDN
ServiceId of the Registrar service on pool contoso.cpcc.edu = 1-Registrar-1

Corresponding Pool Policy = 1491043820

Exception calling "FindAll" with "0" argument(s): "There is no such object on the server.
"
At C:\\Documents\script\CSApplicationContact\get-CsApplicationContact.ps1:283 char:39
+ $colResults = $objSearcher.FindAll <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Contact objects found:

Cannot index into a null array.
At C:\Users\\Documents\script\CSApplicationContact\get-CsApplicationContact.ps1:309 char:69
+ $formattedResult.$propertyName = $objItem.$propertyName[ <<<< 0]
+ CategoryInfo : InvalidOperation: (0:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
In my case, our instance of Lync was upgraded from OCS, to OCSR2, and then to Lync. 

This was the source of the problem.

Checking the code, right after the "Contact objects found" we see:

$searchPath = "LDAP://CN=Application Contacts,CN=RTC Service,CN=Services,CN=Configuration," + $domainDN

In my case, we had updated to OCS R2 and Lync without changing the location of where the data was stored in the schema.

$searchPath = "

Changing this one line to point to the correct location of our application contacts, and the script now runs as designed.  Hopefully, we will not run into other scripts that assume the location in AD.

Cheers.

- Steve

Thursday, July 29, 2010

Install of CWA hangs at "Create New Virtual Web"

Specifically, the progress does not move past 'Creating Web Site' process in Create a Virtual Server Wizard and 'Creating Virtual Directories'.

What led to the re-install was that I was running into the issue:

"You do not have a phone number configured for dial-in conferencing and will only be able to dial into conferences as an unauthenticated participant. Please contact your system administrator."


Per:

http://social.technet.microsoft.com/Forums/en-US/ocsplanningdeployment/thread/82b4709f-fa4f-46e0-9886-eda89654fdb6

...I decided I would just re-install CWA.   (July's database upgrade and upgrading all servers to the latest code didn't resolve the issue for me)



When finally I gave up and cancelled the setup for CWA's 'Creating Virtual Directory', I checked the Deployment Log, and the problem was listed as:


                Create Application Pools: Failure [0x80070490] Element Not Found

Another user had run into this error message (not OCS related) and had contacted Microsoft and it was related to the IIS Default Application pool.  

http://forums.aspfree.com/microsoft-iis-12/element-not-found-error-when-creating-a-virtual-directory-162291.html

Apparently, the problem was in the metabase.xml file.

The  solution was:

1. Open a command prompt on this server.
2. Navigate to %systemdrive%\inetpub\adminscripts directory.
3. Execute the following commands:

cscript adsutil.vbs set W3SVC/AppPoolId ASP
cscript adsutil.vbs set W3SVC/1/AppPoolId ASP

I ran through these steps and was able to finish the install.

According to MS, 'this replaced the DefaultAppPool entries with the valid 'ASP' app pool' and the setup then ran flawlessly.

Monday, March 15, 2010

Fun with Normalization / Reverse-name lookups

In a UM/OCS environment, where does OCS use Normalization rules / Reverse-Lookups - or is it Exchange doing the work?  Why or why not does some feature work?

In this article I'll look at :
  • Toasts
  • Exchange Missed call notifications
  • Conversation history
With a Nortel CS1000 integrated system - it can get pretty confusing.

Toasts

Toasts are interpreted by the OCS client directly

1)  A user calls in from OCS and they have Enterprise voice enabled.

Result:  The user name is displayed correctly - the line URI is where the lookup occurs.

2) A user calls in from the PBX

Result:  If you have enabled the Mediation server to send the user name forward as descried in KB article:  http://support.microsoft.com/kb/972721/, then the name is displayed in the Toast.  Otherwise, you only see the number displayed.

Unfortunately, if you have a Tanjay device (ip8540 or cx700), this will fail (at least as of version 3.5.6907.82), the toast will still fail come up correctly both on your screen and on the Tanjay.   The Tanjay is apparently responsible for this when you have it connected to your PC via a USB cable.

3) User calls in from outside (local or long-distance)

Result:  If you have Caller-ID, the name shows up correctly.  If you do not - it will only show the phone number.

Missed Call Lookup (Exchange UM feature)

1) A user calls in from OCS and they have Enterprise voice enabled

Result: If they have Exchange UM enabled, then the name shows up correctly in your missed call notification.   If the number is associated with the wrong user - that name will appear.

2) A user calls in from the PBX

Result: If the user is Exchange UM enabled, then the name will show up correctly in the missed call notification.  If not, then just the phone number will show up.  Again, if their name is your contact list, it will show up correctly.

3) User calls in from outside (local or long-distance)

Result:  Only users in your Outlook Contact list will show up correctly here.

Conversation History  (Reverse AD lookup)

1) A user calls in from OCS and they have Enterprise voice enabled

Result: Conversation history shows up correctly with the user's name and information.

2) A user calls in from the PBX

Result:  The CS1000 uses "local numbers" in their tel:URI's.  From RFC 3996  "The tel URI for Telephone Numbers":

5.1.5. Local Numbers


Local numbers are unique only within a certain geographical area or a certain part of the telephone network, e.g., a private branch exchange (PBX), a state or province, a particular local exchange carrier, or a particular country. URIs with local phone numbers should only appear in environments where all local entities can successfully set up the call by passing the number to the dialing software. Digits needed for accessing an outside line, for example, are not included in local numbers. Local numbers SHOULD NOT be used unless there is no way to represent the number as a global number.

6. Examples


tel:+1-201-555-0123: This URI points to a phone number in the United States. The hyphens are included to make the number more human readable; they separate country, area code and subscriber number.

tel:7042;phone-context=example.com: The URI describes a local phone number valid within the context "example.com".

tel:863-1234;phone-context=+1-914-555: The URI describes a local phone number that is valid within a particular phone prefix.


Unless you store your numbers in AD in "local number" format (and normalize them as such), you will not get an Active Directory match and it will actually put in a hyperlink that is exactly in this format (since it does not get normalized) which is uncallable.  

I recommend normalizing it back to a global number format:

^\+?(\d{10})(;phone-context=dialstring)?$
+$

...will remove this and put it he number in "global number" format.   This of course, will require you to know what the strings mean and how to interpret them correctly.   This is another reason to avoid using the local number format.

If / when the PBX does go away, this will also make the transition easier.

Monday, October 12, 2009

Calling yourself from one PC using Virtual PC for Windows 7

A problem I've found it trying to call myself from one phone to another and only having one PC.
VM's have worked in the past for the Office Communicator client, but not for using VOICE.

With Windows 7 - I finally had to give up on Microsoft Virtual Server 2005 R2.   There are some workarounds to get it to to work, but there are even more issues afterwards.   

The workaround for this turns out to be Virtual PC for Windows 7, if you can meet the hefty requirements. 

From : http://www.microsoft.com/windows/virtual-pc/support/requirements.aspx
  •  Hardware Virtualization Technology enabled
  • 1 GHz 32-bit / 64-bit processor required
  • Memory (RAM)  -  2GB memory or higher recommended
  • Recommended 15 GB hard disk space per virtual Windows environment
  • Supported host operating system:

 VT was not required for Virtual PC 2007, but if you have it you also get the one more thing:  USB support.   (Two more things if you were using Virtual Server 2005 - USB and Sound)
 
With this option, it is possible to plug in an 8501 soft-phone and assign it to your Virtual PC.  Then you can simply assign it to the virtual machine.
 

 
Go through Tools / Set up Audio and Video in Office Communicator and you can now call yourself using a single PC using Virtual PC.
 
This is also useful for when you have your ip8540 / cx700 attached to your PC because it allows you to easily test a soft-phone without having to unplug the other.