Google Analytics İzleme

20 Şubat 2017

.Net ve SAP - "Bad variant type" hatası

.Net 4.0 ile console uygulamasından interop SAP dll'lerini kullanıldığında "Bad variant type" şeklinde hata vermektedir.


Hata detayı:
Bad variant type
Source: wdtaocx
   at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
   at SAPFunctionsOCX.ISAPFunctions.set_Connection(Object )


Çözümü:
Bu hatanın çözümü interop dll'lerindeki sap metodları tek thread içinde çağrılması gerektiğindendir. Zorlama ile tek thread içinde çalışması sağlanmalıdır.

Örnek çağrım:

--
var staThread = new System.Threading.Thread(() => MyMethod());
staThread.SetApartmentState(System.Threading.ApartmentState.STA);
staThread.Start();
staThread.Join();

This above code help the method to work as single thread and the connection is establish without any error.
--

Alıntı:
https://www.codeproject.com/Questions/618768/SAP-Logon-control-BAD-VARIANT-TYPE-issue-in-Window


Hiç yorum yok: