v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

false
false
false

EN-AU
X-NONE
X-NONE

MicrosoftInternetExplorer4

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:”Table Normal”;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:””;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:”Calibri”,”sans-serif”;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:”Times New Roman”;
mso-bidi-theme-font:minor-bidi;
mso-fareast-language:EN-US;}

I have a client scenario where weird 3rd party
system 1, sends me an update of some information, from time to time, about a
user, this information needs to be instantly replicated into SharePoint.
I could use BCS but it’s not instant  It’s coming to me via BizTalk, so I have it in
near real time, so 
I can update SharePoint can’t I?? well yes it seems you can
There is the web service that SharePoint quite nicely exposes:
http://{Server}/_vti_bin/userprofileservice.asmx
It has many methods one of these is: ModifyUserPropertyByAccountName
It’s a one way send in BizTalk. 
When you add a reference, you need to add a generated item,
that consumes a WCF Service.
You will get 2 schema s an orchestration and a port binding,
the schema s are useful, the orchestration you can choose to use it or not, it
contains a bunch of multi-part message types, 
and a massive port for every single method.
The port is useful, because
it contains the operations, you will need to use when you create the port, so
one port can have many operations to the same web service, they give you the
binding for this port, which is very nice, I suggest you use it.
Here is where all the nice stuff ends, and the really interesting
stuff begins. If you use this, it does not work. 
You may get:
Error details: System.ServiceModel.FaultException:
<soap:Envelope
xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Server
was unable to process request. —&gt; Invalid String Value: Input must
match string data type.</faultstring><detail
/></soap:Fault></soap:Body></soap:Envelope>
This made no sense to me, as I was sending a string, and updating
a string..
If you look at the schema for the message:


value is defined as xs:anyType, which means you can put anything
in here, which is correct, I want to, a string, a datetime, a int. So the
schema is flexible
The wsdl is very vague:
      <s:complexType
name=”ValueData”>
        <s:sequence>
          <s:element
minOccurs=”0″ maxOccurs=”1″ name=”Value” />
        </s:sequence>
      </s:complexType>
The value is does not specify xs:anytype however because it
does not specify a type BizTalk interprets this, bad sharepoint.
However it does not go far enough and hence it is a real
let down when you have gotten past the authentication issue to find this. See
my other post to fix this.
If you call the method from .net code, it works however to
find out why it works, you look at the xml that this call generates:
<ValueData>
   <Value
xsi:type=xsd:dateTime>2012-06-25T10:01:17.486123+10:00</Value>   </ValueData>
The “value”  has an
uppercase V, BizTalk puts is with a lower case V.  so that’s the first fix.
The next problem: xsi:type ??
It’s not even in the schema, it’s ont in the wsdl.  I try and try and try to get it in to the
schema, it’s not going to happen.
I managed to add an attribute to the value, called type,
however it’s coming up as:
<ns0:Value ns0:type
Now the values are being set in SharePoint, all to NULL
because it cannot interpret the type.
Now I know what I need to make the message look like, I have
BizTalk pipelines I can touch up the message before I send it to SharePoint.
So I go and touch up the message and the thing works perfectly.
!!
I can now communicate from BizTalk to SharePoint, to update
the user profiles.
My port looked like this: