Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - aldente

Pages: [1]
1
FMK 1.2.6 / Start problemer med FMK 1.2.6 inline WSDL
« on: 2012-08-09 10:20:38 »
Jeg er ved at implementere FMK, og jeg udvikler i C# i Visual Studio 2005. Jeg er rendt ind i problemer ved instantiering af C# proxy klassen.

Jeg har gjort følgende:

1) Prøver at generere C# proxy:
     wsewsdl3 /type:webclient http://triforkfaellestest.lms.trifork.com/fmk12/wsdl/MedicineCard_2012_01_01.wsdl

   Giver følgende output:
     Web Services Enhancements 3.0 for Microsoft .NET.
     Copyright (c) Microsoft Corporation.

     Microsoft (R) Web Services Description Language Utility
     [Microsoft (R) .NET Framework, Version 2.0.50727.42]
     Copyright (C) Microsoft Corporation. All rights reserved.

     If you would like more help, please type "wsdl /?".

     Error: There was an error processing 'http://triforkfaellestest.lms.trifork.com/fmk12/wsdl/MedicineCard_2012_01_01.wsdl'.
     - Der opstod en fejl under hentning af 'http://triforkfaellestest.lms.trifork.com/fmk12/wsdl/MedicineCard_2012_01_01.wsdl'.
     - Anmodningen mislykkedes med HTTP-status 404: Not Found.

   Kommentar:
     Umiddelbart ser det ud til at:
     - Adgang nægtet
     - Ikke korrekt URL (det tror jeg ikke selv på)
     - WSDL filen ligger et andet sted.

   Spørgsmål:
     Hvad skal jeg gøre?

2) Downloader "Inline WSDL for FMK 1.2.6" fra "http://digitaliser.dk/resource/2325102".

3) Prøver at generere C# proxy:
     wsewsdl3 /type:webclient MedicineCard-inline_2012_01_01.wsdl

   Giver følgende output:
     Web Services Enhancements 3.0 for Microsoft .NET.
     Copyright (c) Microsoft Corporation.

     Microsoft (R) Web Services Description Language Utility
     [Microsoft (R) .NET Framework, Version 2.0.50727.42]
     Copyright (C) Microsoft Corporation. All rights reserved.
     Warning: This web reference does not conform to WS-I Basic Profile v1.1.
     R2718: En wsdl:binding i en BESKRIVELSE SKAL have det samme sæt wsdl:operations som den wsdl:portType, den refererer til.
     -  Handlingen 'UpdateMedicineCard_20120101' på portType 'MedicineCardPortType' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har ikke nogen passende bindinger.

     R2710: Operationerne i en wsdl:binding i en BESKRIVELSE SKAL medføre "wire signatures", som er forskellige. Et slutpunkt, der understøtter flere operationer skal entydigt identificere den operation, der igangsættes baseret på den modtagne inputmeddelelse. Dette er kun muligt, hvis alle de operationer, der er angivet i den wsdl:binding, som er tilknyttet et slutpunkt, har en entydig "wire signature".
     -  Inputmeddelelsen 'MedicineCardRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:MedicineCardRequestStructure'.
     -  Inputmeddelelsen 'NewMedicineCardRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:MedicineCardRequestStructure'.
     -  Inputmeddelelsen 'DrugMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:DrugMedicationRequestStructure'.
     -  Inputmeddelelsen 'NewDrugMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:DrugMedicationRequestStructure'.
     -  Inputmeddelelsen 'PrescriptionMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2008/06/01:PrescriptionMedicationRequestStructure'.
     -  Inputmeddelelsen 'NewPrescriptionMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2008/06/01:PrescriptionMedicationRequestStructure'.
     -  Inputmeddelelsen 'SearchWithdrawnDrugMedicationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchWithdrawnDrugMedicationsRequestStructure'.
     -  Inputmeddelelsen 'SearchWithdrawnDrugMedicationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchWithdrawnDrugMedicationsRequestStructure'.
     -  Inputmeddelelsen 'SearchEffectuationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchEffectuationsRequestStructure'.
     -  Inputmeddelelsen 'SearchEffectuationsRequest_20110101' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchEffectuationsRequestStructure'.

     For more details on the WS-I Basic Profile v1.1, see the specification at http://www.ws-i.org/Profiles/BasicProfile-1.1.html.


     If you would like more help, please type "wsdl /?".

     Error: Bindingen 'MedicineCardBinding' kan ikke importeres fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01'.
     - Handlingen 'UpdateMedicineCard_20120101' på portType 'MedicineCardPortType' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' indeholder følgende syntaksfejl:  Handlingen har ikke en binding, der passer. Kontroller, om navnene på handling, input og output i afsnittet Binding passer til de tilsvarende navne i afsnittet PortType.

   Kommentar:
     Det lader til at handlingen 'UpdateMedicineCard_20120101' mangler.
     Jeg har forsøgt efterfølgende selv tilføjet handlingen og bygget en ny C# proxy.

   Spørgsmål:
     Skal jeg selv tilføje handlingen, eller findes der en opdateret version af WSDL filen?

4) Tilføjer handling 'UpdateMedicineCard_20120101' til afsnittet '<wsdl:binding>'
     <wsdl:operation name="UpdateMedicineCard_20120101">
       <soap:operation soapAction="http://www.dkma.dk/medicinecard/xml.schema/2012/01/01#UpdateMedicineCard" style="document"/>
       <wsdl:input name="UpdateMedicineCardRequest_20120101">
         <soap:header message="tns:SecurityHeader" part="SecurityHeader" use="literal"/>
         <soap:header message="tns:MedComHeader" part="MedcomHeader" use="literal"/>
         <soap:header message="tns:OnBehalfOfHeader" part="OnBehalfOfHeader" use="literal"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDSystemOwnerName" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDSystemName" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDSystemVersion" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDOrgResponsibleName" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDOrgUsingName" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDSystemHeader" part="SDSDOrgUsingID" use="literal" wsdl:required="true"/>
         <soap:header message="tns:SDSDRequestedRole" part="SDSDRequestedRole" use="literal"/>
         <soap:body use="literal"/>
       </wsdl:input>
       <wsdl:output name="UpdateMedicineCardResponse_20120101">
         <soap:header message="tns:TimingHeader" part="TimingHeader" use="literal"/>
         <soap:header message="tns:ReplicationStatusHeader" part="ReplicationStatusHeader" use="literal"/>
         <soap:body use="literal"/>
       </wsdl:output>
       <wsdl:fault name="DGWSFault">
         <soap:fault name="DGWSFault" use="literal"/>
       </wsdl:fault>
     </wsdl:operation>

5) Prøver at generere C# proxy:
     wsewsdl3 /type:webclient MedicineCard-inline_2012_01_01.wsdl

   Giver følgende output:
     Web Services Enhancements 3.0 for Microsoft .NET.
     Copyright (c) Microsoft Corporation.

     Microsoft (R) Web Services Description Language Utility
     [Microsoft (R) .NET Framework, Version 2.0.50727.42]
     Copyright (C) Microsoft Corporation. All rights reserved.
     Warning: This web reference does not conform to WS-I Basic Profile v1.1.
     R2710: Operationerne i en wsdl:binding i en BESKRIVELSE SKAL medføre "wire signatures", som er forskellige. Et slutpunkt, der understøtter flere operationer skal entydigt identificere den operation, der igangsættes baseret på den modtagne inputmeddelelse. Dette er kun muligt, hvis alle de operationer, der er angivet i den wsdl:binding, som er tilknyttet et slutpunkt, har en entydig "wire signature".
     -  Inputmeddelelsen 'MedicineCardRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:MedicineCardRequestStructure'.
     -  Inputmeddelelsen 'NewMedicineCardRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:MedicineCardRequestStructure'.
     -  Inputmeddelelsen 'DrugMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:DrugMedicationRequestStructure'.
     -  Inputmeddelelsen 'NewDrugMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:DrugMedicationRequestStructure'.
     -  Inputmeddelelsen 'PrescriptionMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2008/06/01:PrescriptionMedicationRequestStructure'.
     -  Inputmeddelelsen 'NewPrescriptionMedicationRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2008/06/01:PrescriptionMedicationRequestStructure'.
     -  Inputmeddelelsen 'SearchWithdrawnDrugMedicationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchWithdrawnDrugMedicationsRequestStructure'.
     -  Inputmeddelelsen 'SearchWithdrawnDrugMedicationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchWithdrawnDrugMedicationsRequestStructure'.
     -  Inputmeddelelsen 'SearchEffectuationsRequest' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchEffectuationsRequestStructure'.
     -  Inputmeddelelsen 'SearchEffectuationsRequest_20110101' fra navneområdet 'http://www.dkma.dk/medicinecard/xml.schema/2012/01/01' har "wire signature" 'http://www.dkma.dk/medicinecard/xml.schema/2009/01/01:SearchEffectuationsRequestStructure'.

     For more details on the WS-I Basic Profile v1.1, see the specification at http://www.ws-i.org/Profiles/BasicProfile-1.1.html.

     Writing file 'MedicineCard.cs'.

   Kommentar:
     C# proxy 'MedicineCard.cs' er nu genereret.
     Jeg går ud fra, at jeg skal ignorere Warninggs.

6) Filen 'MedicineCard.cs' kopieres til C# projekt folderen.

7) Projektet bygges uden problemer.

Projektet køres.
     Under instantiering af klassen MedicineCard fra C# proxyen giver følgende exception:
       System.InvalidOperationException was unhandled
       Message="Der kunne ikke oprettes en midlertidig klasse (result=1).
                error CS0030: Typen 'DeliveryInformationStructureType' kan ikke konverteres til 'OrderInstructionStructureType'
                error CS0030: Typen 'long[]' kan ikke konverteres til 'long'
                error CS0030: Typen 'long[]' kan ikke konverteres til 'long'
                error CS0030: Typen 'long[]' kan ikke konverteres til 'long'"
       Source="System.Xml"
       StackTrace:
            ved System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
            ved System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
            ved System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
            ved System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
            ved System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
            ved System.Web.Services.Protocols.SoapClientType..ctor(Type type)
            ved System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
            ved Microsoft.Web.Services3.WebServicesClientProtocol..ctor()
            ved MedicineCard..ctor() i C:\Lars\Test Projekter\FMK_Sandbox\MedicineCard.cs:linje 145
            ved FMK_Sandbox.MainForm..ctor() i C:\Lars\Test Projekter\FMK_Sandbox\MainForm.cs:linje 27
            ved FMK_Sandbox.Program.Main() i C:\Lars\Test Projekter\FMK_Sandbox\Program.cs:linje 17
            ved System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
            ved Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
            ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
            ved System.Threading.ThreadHelper.ThreadStart()

    Spørgsmål:
     Hvorfor denne exeption?
     Hvad skal jeg gøre for at undgå denne excpetion?


Det var vist en lang historie. men jeg håber at I kan hjælpe mig.

Venlig hilsen
Lars Klareskov
al dente
 

Pages: [1]