Einzelnen Beitrag anzeigen

Dogenik

Registriert seit: 11. Apr 2013
4 Beiträge
 
#8

AW: WSDL Dynamische Arrays als Property und Setlength ???

  Alt 11. Apr 2013, 15:26
Hallo Ihr,
ich habe im Prinzip das gleiche Problem wie der Threadersteller, komme aber mit den geposteten Lösungen hier nicht zum Ziel. Durch die Webrecherche bin ich auf diesen Thread aufmerksam geworden und hänge mich frech dran :/

Ich kann einfach dem "eInfoDoc.document.docs" Array keine Länge zu weisen und stehe total auf dem Schlauch.
Im Einsatz ist Delphi 7.
Mein Code:

var eInfoDoc : EditInfo;

eInfoDoc := ix.checkoutDoc(clInfo, InttoStr(EInfoDocSord.Id), '', ixKonst.EDIT_INFO.mbSordDocAtt,ixKonst.LOCK.Yes);
//-> Hier ist das Problem das es knallt wenn auf die Elemente zugegriffen werden soll:

eInfoDoc.document.docs[0].ext := 'pdf';
eInfoDoc.document.docs[0].pathId := eInfoDoc.sord.path;
eInfoDoc.document.docs[0].encryptionSet := eInfoDoc.sord.details.encryptionSet;
//<-
-----------------

Ein C# Beispiel aus der Doku (für Delphi gibts keine Dokumentation):
EditIfo ed = ix.Ix.checkoutDoc(d1.id, null, EditInfoC.mbSordDocAtt, LockC.NO);
// Datei zum hochladen
string testFile = "C:\\test.txt");
// Datensatz für die Dokumentversion vorbereiten
ed.document.docs = new DocVersion[1];
ed.document.docs[0] = new DocVersion();
ed.document.docs[0].ext = IXClient.getFileExt(testFile);
ed.document.docs[0].pathId = ed.sord.path;
ed.document.docs[0].encryptionSet = ed.sord.details.encryptionSet;

Folgende WDSL wird verwendet:

EditInfo = class(TRemotable)
private
FchangedMembers: Int64;
FdocTemplates: ArrayOfIdName;
Fdocument: Document;
Fkeywords: ArrayOfKeyword;
FmarkerNames: ArrayOfIdName;
Fmask: DocMask;
FmaskNames: ArrayOfMaskName;
Fnotes: ArrayOfNote;
FpathNames: ArrayOfIdName;
FreplNames: ArrayOfIdName;
Fsord: Sord;
FsordTypes: ArrayOfSordType;
public
destructor Destroy; override;
published
property changedMembers: Int64 read FchangedMembers write FchangedMembers;
property docTemplates: ArrayOfIdName read FdocTemplates write FdocTemplates;
property document: Document read Fdocument write Fdocument;
property keywords: ArrayOfKeyword read Fkeywords write Fkeywords;
property markerNames: ArrayOfIdName read FmarkerNames write FmarkerNames;
property mask: DocMask read Fmask write Fmask;
property maskNames: ArrayOfMaskName read FmaskNames write FmaskNames;
property notes: ArrayOfNote read Fnotes write Fnotes;
property pathNames: ArrayOfIdName read FpathNames write FpathNames;
property replNames: ArrayOfIdName read FreplNames write FreplNames;
property sord: Sord read Fsord write Fsord;
property sordTypes: ArrayOfSordType read FsordTypes write FsordTypes;
end;

------------------------------

ArrayOfDocVersion = array of DocVersion; { "http://de.elo.ix/types/IndexServer" }


// ************************************************** ********************** //
// Namespace : http://de.elo.ix/types/IndexServer
// ************************************************** ********************** //
Document = class(TRemotable)
private
FchangedMembers: Int64;
Fatts: ArrayOfDocVersion;
Fdocs: ArrayOfDocVersion;
FobjId: WideString;
public
destructor Destroy; override;
published
property changedMembers: Int64 read FchangedMembers write FchangedMembers;
property atts: ArrayOfDocVersion read Fatts write Fatts;
property docs: ArrayOfDocVersion read Fdocs write Fdocs;
property objId: WideString read FobjId write FobjId;
end;

-----------------------------

Für einen Schubs in die richtige Richtung wäre ich ewig dankbar!
Edit: vergessen habe ich das beim Versuch CLass Helper zu nutzen folgende Meldung kommt: [Fataler Fehler] ufrmMainpwEloImporter.pas(11): System-Unit veraltet oder beschädigt: 'TClassHelperBase' fehlt

Geändert von Dogenik (11. Apr 2013 um 15:32 Uhr)
  Mit Zitat antworten Zitat