Avatar billede kloge Nybegynder
25. september 2008 - 23:10 Der er 2 løsninger

Axapta COM Object

Problem:

Brug af axapta com connector fra delphi:


I VB går det fint:


axa.Logon("ret", "en-us", "dicntaos09:2719")


Label1.Text = axa.CallStaticClassMethod("DISAStockMachineAPI", "GetItemText", "007-0290-920")


den tilsvarende Delphi kode


axa.logon('ret', 'en-us', 'dicntaos09:2719');  // OK
Label1.caption := Axa.CallStaticRecordMethod('DISAStockMachineAPI', 'GetItemText', '007-0290-920');  // Exception:  (Runtime, - fra remote maskine) The operation failed. The record ?|?| does not exist.


Logon er deklareret med Olevariant i unit AxaptaCOMConnector_TLB;:


procedure Logon(company: OleVariant; language: OleVariant; objectServer: OleVariant); overload; // Går fint


CallStaticRecordMethod er deklareret med Widestring:



function CallStaticClassMethod(const bstrClass: WideString; const bstrMethod: WideString;
                                  v1: OleVariant): OleVariant; overload;  // Widestring parametrene bliver ikke overført korrekt.


Jeg har forsøgt med at sende widestring - parametrene (brstClass og brstMethod) med #0 i enden, som Pchar og Pwidechar, men uden succes.


Er der én her, der har en idé?

Any help appreciated!
Avatar billede tolderlund Nybegynder
26. september 2008 - 15:25 #1
Det eneste jeg lige kan se er at CallStaticClassMethod har en OleVariant parameter, men du overfører en tekstkonstant. Kan det være problemet?
Prøv at definere en variant variabel og brug den i funktionskaldet.
Avatar billede kloge Nybegynder
26. september 2008 - 18:13 #2
For pinligt, jeg kalder CallStaticRecordMethod i Delphi og ikke CallStaticClassMethod,
så skal det jo gå galt!

Hilsen Thomas
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester