Hello,
I did not get to spend much time on this yesterday but I did import the
WSDL. And indeed I saw the headers. Here's what I got:
{code}
//
************************************************************************ //
// XML : MFETHeaderType, global, <complexType>
// Namespace : http://www.fastenterprises.com
// Info : Header
//
************************************************************************ //
MFETHeaderType2 = class(TSOAPHeader)
private
FUser: string;
FPassword: string;
FEnvironment: EnvironmentType;
published
property User: string Index (IS_NLBL) read FUser write
FUser;
property Password: string Index (IS_NLBL) read FPassword
write FPassword;
property Environment: EnvironmentType read FEnvironment write
FEnvironment;
end;
//
************************************************************************ //
// XML : MFETHeaderType, global, <element>
// Namespace : http://www.fastenterprises.com
//
************************************************************************ //
MFETHeaderType = class(MFETHeaderType2)
private
published
end;
//
************************************************************************ //
// XML : MFETHeader, global, <element>
// Namespace : http://www.fastenterprises.com
// Info : Header
//
************************************************************************ //
MFETHeader = class(MFETHeaderType2)
private
published
end;
{code}
NOTE: The importer is very verbose for what should have been just one type.
However, it's because the WSDL used a global <element> that mapped to a
global <complexType> ... when that happens the importer does not collapse
the element and its type because something else could be referring to the
type. (It's possible to walk the model and catch that nothing else is
referring to the type except for the Header element and collapse; someday
I'll get to that:).
And the importer also showed that the method expects the header:
{code}
// Headers: mvntHeader:pIn
function SubmissionListBySubmissionId(const SubmissionId:
SubmissionId): SubmissionList; stdcall;
{code}
The above is the part name. It would be best to emit the actually type of
the part.
As soon as time allows I'll illustrate how to set the header. However, my
main concern is that the error message you received does not have to do with
missing the MFETHeader: rather, I think, it's because the service requires
WS-Addressing (which is another header).
I'll expand more on that as soon as I get a chance.
Cheers,
Bruneau