Die Schnittstelle zu Syrius/RIK kann mithilfe des .wsdl Files generiert werden.
Vorgehen:
1. Es wird SvcUtil.exe benötigt im Verzeichnis: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools
2. Mit Konsole ausführen
Beispiel:
SvcUtil.exe GlobalRIKMeldungExporter.wsdl rik-export-schema-v520.xsd eCH-0007-6-0.xsd eCH-0010-6-0.xsd eSchKG_2.0.013.xsd syrius.util.exception.xsd syrius.foundation.vo.xsd syrius.foundation.types.xsd syrius.foundation.codes.xsd com.adcubum.foundation.vo.xsd syrius.metas.xsd syrius.simple_types.xsd syrius.modul_bl.service.soap.xsd oasis-200401-wss-wssecurity-secext-1.0.xsd oasis-200401-wss-wssecurity-utility-1.0.xsd /target:code /l:c# /o:GlobalRIKMeldungExporter /n:*,SyriusWebServices.Exporter.V52 /syncOnlyErster Parameter => Pfad WSDL
/o => output File (ohne Endung)
S
/t => Was generiert werden soll.
/l => Sprache (c#)
/n => Zu verwendenden Namespace (Auf korrekte Deklarierung schauen mit *,)
/syncOnly => Es werden nur die synchronen Methoden generiert
25.07.2019/hap
z.Zt. ist es (noch) notwendig den OperationContract von Methoden (der generierten Schnittstelle) mit der Attributierung "Action" und "ReplyAction" zu ergänzen.
Ohne Benennung der Action, löst ein Klick auf "GlobalRIKMeldungExporter.svc" im Browser einen Fehler aus (z.B.: The operations "requestCollection" and "processDebtReduction" have
the same action (). Every operation must have a unique action value.).
Zudem stehen bei "ReplyAction" nur Methoden ohne Rückgabewert (d.h. asynchrone Meldungen) zur Verfügung (vgl. Test SoapUI mit URL als WSDL-Pfad).
Beispiel:
[System.ServiceModel.OperationContractAttribute(Action="processDebtReduction", ReplyAction= "processDebtReductionResponse")]
09.05.2022 / RIK V5.0
Die folgenden(Exporter-)Klassen müssen nachträglich/zusätzlich mit "XmlRoot" attributiert werden. Dies stellt sicher, dass die Klassen mit - dem RIK-V50-Schema entsprechenden - Namen/Namespace
serialisiert und korrekt validiert werden können:
legalCollectionRequestRequest
processDebtReductionRequest
processPartnerdataRequest
processClaimCancellationRequest
processClaimReturnRequest
Beispiel:
[System.Xml.Serialization.XmlRootAttribute(ElementName = "legalCollectionRequest", Namespace = "urn:com:adcubum:syrius:api:finanzwesen:rechtlichesinkasso:v500:types", IsNullable = false)]
public partial class legalCollectionRequestRequest
Hinweis: Das Element/Field "Security" wird in debit (vgl. ApiRuleSyrius/SyriusProvider) aus dem XML-Dokument entfernt. Die Attributierung mit mit "NonSerializd", "ScriptIgnore" oder "XmlIgnore"
zeigt keine Wirkung bzw. ist für Klassen mit "MessageContract IsWrapped=true" nicht zulässig!
21.07.2022/hap / RIK V5.1
Die bereits in RIK V5.0 erwähnte ergänzende Attributierung "XmlRoot" ist auch für die neuen Meldungen einzupflegen:
processLegalCollectionDeletionApproval
processPaymentPlanDeletionApproval
Ebenfalls ist - wie in den vorgängigen RIK-Versionen - die WSDL-Datei mit den Typen für die Security zu ergänzen (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd).
Der entsprechende Header ist zu definieren:
und im Header der jeweiligen Meldung anzugeben. Beispiel:
Bei der Generierung (mittels SvcUtil.exe) der cs-Datei aus der WSDL-Datei werden z.T. fälschlicherweise Felder/Eigenschaften mit zweidimensionalem Array generiert; Beispiel:
string[][]
Diese produzieren bei der Deserialisierung jeweils Fehler! Durch die Reduzierung auf eine Dimension funktioniert die Deserialisierung.
string[]
14.02.2023/siero / RIK V5.1
Manuelle Anpassung an GlobalRIKMeldungExporter.cs: Request-spezifische Responses (legalCollectionRequestResponse, processDebtReductionResponse, ....)
umgestellt auf "response", da Syrius dies als Root-Element in sämtlichen Responses erwartet.
24.09.2025/ponni: RIK V5.2
Folgende Meldungen gibt es nicht mehr:
processLegalCollectionDeletionApproval
processPaymentPlanDeletionApproval