My goal is to make a search in both GAL and user's local contacts using GivenName/Surname filter
and then return to the user the aggregated search results together with some contact details
(contact phone numbers and etc).
It needs to be supported for both Exchange 2013 and Exchange 2016.
According to Microsoft documentation FindPeople seemed to be supported starting 2013 and for
both GAL and user's local contacts.
So the request for both directories was implemented using same EWS API - FindPeople/GetPersona.
But I've faced with the following issue.
When using "FindPeople" EWS query on Exchange 2016, search works correctly for both GAL and Personal Directory.
But when using "FindPeople" on Exchange 2013:
search works correctly for GAL;
but fails for Personal Directory - server returns 200 OK with empty results list:
<FindPeopleResponse ResponseClass="Success" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages>
<ResponseCode>NoError</ResponseCode>
<People/>
<TotalNumberOfPeopleInView>0</TotalNumberOfPeopleInView
<FirstMatchingRowIndex>0</FirstMatchingRowIndex
<FirstLoadedRowIndex>0</FirstLoadedRowIndex>
</FindPeopleResponse>
though there are items in Personal Directory matching the search filter.
Questions:
1) Is Personal Directory search is supported on all Exchange 2013 builds?
Or maybe some patch or service pack needs to be installed on older Exchange 2013 builds?
2) Should some configuration be done on Exchange Server 2013 to allow search in Personal Directory using EWS API?
3) If nothing special needs to be done for support and everything should work on any Exchange 2013,
is there a good way for troubleshooting this issue?
Tried checking EWS logs according to:
https://ingogegenwarth.wordpress.com/2017/01/12/troubleshooting-exchange-with-logparser-ews-logs/
But seems there is not much additional info in them - only that the server returns 200 OK.
Update:
The exact query used for FindPeople is:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\"
xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\"
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:FindPeople>
<m:PersonaShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="persona:DisplayName"/>
<t:FieldURI FieldURI="persona:Surname"/>
<t:FieldURI FieldURI="persona:GivenName"/>
</t:AdditionalProperties>
</m:PersonaShape>
<m:IndexedPageItemView BasePoint="Beginning" MaxEntriesReturned="100" Offset="0"/>
<m:ParentFolderId>
<t:DistinguishedFolderId Id="contacts"/>
</m:ParentFolderId>
<m:QueryString>meo</m:QueryString>
</m:FindPeople>
</soap:Body>
</soap:Envelope>
Thanks in advance
Related
I have a BizTalk 2016 solution. It's collecting a document (Pdf or Word) from a varbinary(max) column of a Sql Server database, along with some metadata. So, the message that makes its way to the messagebox from the Sql Receive Port looks like:
<TypedPolling xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedPolling/ReadyForBizTalk">
<TypedPollingResultSet0>
<TypedPollingResultSet0>
<Id>3</Id>
<DocId>104</DocId>
<Uprn>76675</Uprn>
<Address1>48 Cardinal Square </Address1>
<Address2>City</Address2>
<Address3>County</Address3>
<Postcode>AF1 5FF</Postcode>
<Title>Doc title</Title>
<DocType>Pdf</DocType>
<Version>-1</Version>
<Date>30/01/2019 14:46:26</Date>
<Description>Description</Description>
<FilePath />
<Extension>.pdf</Extension>
<SystemGenerated>false</SystemGenerated>
<Content>/9j/4AAQSkZJRgAB...</Content>
<ProcessedByBizTalk>false</ProcessedByBizTalk>
</TypedPollingResultSet0>
</TypedPollingResultSet0>
I want BizTalk to send this to send the binary document (content of the Content element) and the metadata "Title" value to a SharePoint 2013 document library. I have created a send port and configured the following properties:
Use Cleint OM = Yes
Destination Folder URL
SharePoint Site URL
Column 01 = Title
Column 01 Value = %XPATH=//Title%
I realise that I've not made any attempt to send the "Content" yet but I thought I'd try to get this simple case working first.
When I set a new rec to be collected from the Sql Server table, it is collected ok by BizTalk and I can see from Tracked Messages that a send is made through the SharePoint adaptor. There are no errors either in the BizTalk admin console or event log, but new item appears in the document library
I have a couple of questions:
Any ideas why nothing new is appearing on the doc library?
Once I'm able to persist "something" to SharePoint library, does anyone know how I can get the binary document into the library?
Update: It seems like the XML is not the problem and the issue has to do with using a dev tenant. As far as I can tell, it behaves properly using an Office 365 Home account, but throws a 403 when using an Office 365 Enterprise E3 Developer account. Why does this throw a 403? Is there anything I can do so we can test if we can get an addin taskpane to auto show with our templates?
Title Edit: from "Excel Online Add in- How to auto show taskpane" to "Excel Online Add in- 403 when trying to autoshow and addin using a dev tenant"
Original:
I'm trying to auto show an addin following this guide: https://dev.office.com/docs/add-ins/design/automatically-open-a-task-pane-with-a-document
Since the manifest we currently have in the store doesn't use
<TaskpaneId>Office.AutoShowTaskpaneWithDocument</TaskpaneId> I'm trying to test it out using Script Lab
The <we:webextension> xml is below
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11"
id="{8bc018e3-f345-40d4-8f1d-97951765d531}">
<we:reference id="WA104380862" version="1.1.0.2" store="en-US" storeType="OMEX"/>
<we:alternateReferences/>
<we:properties>
<we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>
</we:properties>
<we:bindings/>
<we:snapshot xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</we:webextension>
In my <wetp:taskpane> I've tried setting visibility="1" and visibility="0", but neither seem to work. When it is 1 I get a 403 and this is my console
OsfRuntimeExcelWac.js:12 GET https://store.office.com/gatedserviceextension.aspx?=313351b2_2e0ee2d3_1500571610901&ui=en-US&rs=en-US&ad=US&fromAR=4 403 ()
e5191e878673e5c7.js:1 Uncaught ReferenceError: $ is not defined
at t.n (e5191e878673e5c7.js:1)
at new t (e5191e878673e5c7.js:1)
at e5191e878673e5c7.js:1
MicrosoftAjax.js:5 Refused to set unsafe header "Cookie"
HEAD https://store.office.com/gatedserviceextension.aspx?fromAR=3&corr=41fa9016-d510-90be-877b-25c612f780bb 403 ()
MicrosoftAjax.js:5 Request to /gatedserviceextension.aspx?fromAR=3&corr=41fa9016-d510-90be-877b-25c612f780bb came back with the status code:
When it's 0, there is nothing unusual in the console, but nothing happens.
What am I doing wrong? Am I just misunderstanding what this is supposed to accomplish? When visibility="1" it looks like it's trying to do something, but isn't allowed. Does it just mean I can't auto load Script Lab? Their manifest suggests that I can.
Any help is appreciated. We're looking at pushing a new version of our Manifest with the proper <TaskpaneId> to test this, but we wanted a proof of concept first.
This is indeed an issue with our code and a fix is underway. It only reproed in certain variations Office 365 for business customers. I'll update my answer once I get confirmation the fix has been fully rolled out.
How did you set
<we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>
in webextension?
Did you modify it directly?
You could try to set it by api in script Lab:
Office.context.document.settings.set("Office.AutoShowTaskpaneWithDocument", true);
Office.context.document.settings.saveAsync();
6 month ago I worked with Bluesnap API. I wrote method that update Bluesnap subscription amount. Now I return to develop bluesnap connection and up to face with error "Missing Translation" when I use written method.
My method run PUT request by url https://sandbox.bluesnap.com/services/2/subscriptions/:subscription-id with headers
Content-Type:application/xml
Authorization:Basic API_AUTH_KEY
and request body
<?xml version="1.0"?>
<subscription xmlns="http://ws.plimus.com">
<override-recurring-charge>
<currency>ILS</currency>
<amount>55</amount>
</override-recurring-charge>
</subscription>
Now instead successful subscription recurring charge change I've got an error
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<messages xmlns="http://ws.plimus.com">
<message>
<error-name>UPDATE_SUBSCRIPTION_FAILED</error-name>
<description>Missing Translation</description>
</message>
</messages>
Does anyone have some ideas how to fix change subscription recurring charge?
The subscription is probably in a status that cannot be updated.
Log into your Bluesnap control panel
Click on Find a transaction from the left side bar
Choose "Subscription Id" from the list and insert your subscription
ID and search
Open any one of the orders
Locate the "Subscription Information" box
Check the "Status" field in that box. If it's anything other
than Active, then that's why.
Let me know what you see!
That error is weird though and I would report it to Bluesnap if I were you
The version you see is the documentation’s and not the API.
If you want only to use Bluesnap for payments and not for managing products/contracts then Payment API is the best option for you.
I point you to this URL that explain the various options of integrating with BlueSnap:
https://support.bluesnap.com/docs/which-bluesnap-solution-do-i-need
Today I was playing with the new (beta) Office 365 unified APIs and I noticed a very strange behaviour, possibly a bug on Microsoft side.
When I try to delete a calendar using the unified APIs I get a 409 error, the same I get when I try to create a new calendar passing a name which already exists. Here below the REST details.
Request:
DELETE https://graph.microsoft.com/beta/me/calendars/AAMkAGZlO...6AAA= HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ...
Host: graph.microsoft.com
Response:
HTTP/1.1 409 Conflict
{"error":{"code":"ErrorFolderExists","message":"A folder with the specified name already exists."}}
According to the specs (https://msdn.microsoft.com/office/office365/APi/calendar-rest-operations#Deletecalendars), 204 should be returned.
Is there a way to create a bug on Microsoft side, such as a bug tracker?
Thanks a lot in advance
This has been Service Exception processing request.
Code: ErrorFolderExists,
Message: A folder with the specified name already exists., Retry
The reason for this error, is that the source platform has a native folder - 'Notes' for example, and the destination Exchange / Outlook also has a native Notes folder, but only for Outlook Notes.
Solution
Therefore the source folder needs to be renamed for a migration to work.
I changed the following web.config:
1- VirtualDirectory\80\web.config
2- 14\TEMPLATE\LAYOUTS\web.config
3- 14\TEMPLATE\ADMIN\web.config
4- 14\CONFIG\web.config
CallStack="True", Debug="True" and customErrors="Off"
on all the 4 web.config files but still I can't display the detailed error message
I only get this:
server error in "/" application runtime error
and some instruction on how to display the detailed error message.
I need your help.
According to this link Sharepoint 2010 Server Error '/' in Application , you have to change the web.config of central administration too , then iisreset , please let me know if it works .
This post help me out on SharePoint 2013. It explains step by step how to enable custom errors Enable Debugging and set custom errors off in SharePoint.
Three key areas that the post mention are:
Turn on the call stack (CallStack="true")
Disable custom errors ()
Enable debugging ()
on the locations given on the article.