Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

The task: connect Outlook with the external list, which was created in Visual Studio and uses SAP connector (sapnco.dll).

What I've done:

  1. Created this external list. I can see all information in SP.
  2. Chose its Office Item Type as Appointment.
  3. Pressed the Connect to Outlook button, it installed automatically generated VSTO and appared in the Outlook. But I can't see any items there.
  4. When I am pressing the Synchronization status button in Outlook, I can see the error in loading Assembly "sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23"

My questions:

  1. Is it possible to add a dll to vsto? Or maybe I can workaround it in some way?
  2. Where can I find additional information about my issue (and what is happening behind the scenes when Outlook uses SP external list)?

Every suggestions are very appreciated.

PS: I tried to use BCS Solution Packaging Tool and BCS Artifact Generator but with no result. I get the errors: "OIR.CONFIG file not found" in the BCS Solution Packaging Tool

"An error occurred while importing the BDC Model. Details: ".", hexadecimal value 0x00 is an invalid character. Line 2. Position 1." in the BCS Artifact Generator.

PPS: I know one workaround. I can create webservice for fetching data from SAP, and use it (I think I could use it without additional dlls). But maybe somebody could propose more suitable approach?

UPDATE1: Full error message in original language (German):

"Unerwarteter Fehler der "MethodInstance" mit dem Namen "ReadListInstance" für die Entität (externer Inhaltstyp) mit dem Namen "AbsenceCalendar" im Namespace "SapDataProvider.SapAbsencesModel1". Fehler in Methode "ReadList", die in Klasse "SapDataProvider.SapAbsencesModel1.AbsenceCalendarService" mit der Nachricht "Die Datei oder Assembly "sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23" oder eine Abhängigkeit davon wurde nicht gefunden. An attempt was made to load a program with an incorrect format." definiert ist."

Translation of the error message:

"Unexpected failure of "MethodInstance" named "ReadListInstance" for the entity (external content type) with the name "AbsenceCalendar" in namespace "SapDataProvider.SapAbsencesModel1". Error in method "Read List" in the class = "SapDataProvider.SapAbsencesModel1.AbsenceCalendarService" with the message "The file or assembly 'sapnco, Version = 3.0.0.42, Culture = neutral, PublicKeyToken 50436dca5c7f7d23" or one of its dependencies was not found. An attempt was made ​​to load a program with an incorrect format. "defined."

UPDATE2: Thanks for almostSharepointMaster for his continuing investigation. He suggests that it is because of incorrect dll format, (maybe 32bit and 64bit). Unfortunately for the moment I can't prove or reject this statement.

Both systems (SP server and client with Outlook work on 64 bit platform).

Client machine

My code (which uses sapnco) is built using Platform target: Any CPU. I don't know about format of sapnco dll, but it works well on server and because server is 64 bit too I think it should work on the 64 bit client too.

enter image description here

Additional thoughts:

Sapnco dll file size is more than 4 MB

enter image description here

But I can't see so huge files in the ClientSolution directory of SP site. If I understand correctly, to allow Outlook to work with external list it installs vsto package from this folder. Maybe I should check some information in the xml files, but I can't see any references to dll there and don't know what too look for.

enter image description here enter image description here

Also I've tried to enable 32 bit applications on SharePoint pool as on proposed by almostSharepointMaster link, but after it SP failed to start. Now I've reverted it back.

enter image description here

UPDATE3: I've realized why it show error about incorrect dll format instead of "can't find the file" (which I saw the first time). It was because I tried to add this dll manually to Windows\System32 dir. When I delete it from there I get the next error:

enter image description here

When I place it to the system32 dir of the machine with Outlook (not SP server) and restart the computer it back to incorrect format again.

enter image description here

I think it means that Outlook shows message about error in loading dll on client side (not error, which is in the SP server). And my thought that the cause of the issue is missed dll in vsto is correct.

Could anybody help me in my investigation?

share|improve this question

2 Answers 2

I dont know if this is any help to you but can you refer to this link: Its to the origional problem with the assembly dll that you might be able to fix! can you post the full error?

http://scn.sap.com/thread/3169897

have you also looked at this?

How to: Connect External Lists to Outlook

http://msdn.microsoft.com/en-us/library/ee557357

How to: Connect an External List to Outlook

http://msdn.microsoft.com/en-us/library/ee559342.aspx

Connecting External Lists to Outlook: Tips and Warnings

http://msdn.microsoft.com/en-us/library/ee558298

a bcs guide if you havent seen this already:

http://blogs.msdn.com/b/bcs/archive/2010/06/04/bcs-solutions-in-outlook.aspx

hope this helps :)

share|improve this answer
    
Thank you for your answer, but unfortunately only the last link might be related to my issue and it propose to use BCS Solution Packaging Tool and BCS Artifact Generator which get me error messages. But anyway I don't know should I use these utils in some manner, or this approach is not for my case. –  MikhailSP Sep 4 '12 at 12:41
    
looking at your issue maybe you should try a different method to connect outlook and list. From the error message maybe you are referencing the wrong dll that makes it throw this error? could be the wrong version number that you should be referencing? are you referencing to a 332bit dll in a 64bit machine? to me it tells me that you have the correct reference as it builds properly but not when it runs indicating wrong dll version –  ali Sharepoint Sep 4 '12 at 15:31
    
I don't think so, because it works in SP with no problem (I can see external list, which uses this dll). The error appears when I try to use this data from Outlook. I think Outlook doesn't use this data from SP, but tries to fetch it from the same code, which uses BCS, but using VSTO. And can't get data, because dll file doesn't attached to VSTO. I am not sure in it, but I think the cause of the issue is missed dll in vsto file (which SP created using my model behind the scenes). I'can't see referenced dll in the /list/SAPList/ClientSolution/#guid# folder (where VSTO is located) –  MikhailSP Sep 4 '12 at 15:47
    
i dont suppose you can post the full error? –  ali Sharepoint Sep 4 '12 at 15:51
    
I've added it to the post (Update 1). –  MikhailSP Sep 4 '12 at 16:45
up vote 0 down vote accepted

Unfortunately I haven't found a way to do it directly. Nothing changed in SP2013. I get the same error.

So I decided to add aditional layer for my data and created OData WebService, which fetches data from SAP using SAP Connector (sapnco.dll) and created External content type and External list which use this WebService. In such a case there is no need in additional dll and I was able to connect this list to Outlook (after mapping its fields to the Office Item Type).

PS: I stumbled in an issue when mapped OData data source to Office Item Type. If you have the same issue, you can find workaround here.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.