Jeg har skrevet en lille utility-dll i C#, som jeg ønsker at bruge fra Navision. For øjeblikket har jeg kun én metode, som ser således ud:
public XmlDocument DoSomething( string arg ) { ... }
Fra Navision kan jeg godt kalde DoSomething(), men den kvitterer med:
Denne meddelelse er til C/AL-programmører:
Varianten har fundet en inkompatibel datatype.
Jeg gætter på, at Navision og .NET ikke nødvendigvis har samme opfattelse af, hvad et "XmlDocument" er.
Allerhelst skulle min metode gerne returnere en streng, den streng vil typisk være noget større end Navision kan håndtere. Derfor tænkte jeg, at jeg kunne pakke strengen ind i et XmlDocument.
Er der nogle forslag til, hvordan jeg kan løse dette problem?
Du kan generelt ikke bruge .net typer i Navision. Hvis du har brug for at returnerer et XmlDocument fra din metode kan du bruge COM:
Du skal have en reference til System.Runtime.InteropServices og returnere en MSXML2.DOMDocument i stedet for .nets XmlDocument.
I din kode i Navision skal erklærer du en variabel af typen 'Automation' med reference til f.eks. "Microsoft XML, v3.0".DOMDocument. Denne variabel tildeler du returværdien fra din metode.
Det kan virke lidt omstændigt, men det kan sagtens lade sig gøre.
Tak for det. Det var noget i den stil, jeg efterspurgte. :) Smid et svar, så skal jeg nok acceptere det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.