57 Vyhledávání

admin 23.01.2017 08:59


Dobrý den,při vyhledávání datových schránek na testovacím prostředí mi je vrácena chyba "1101" Nutno specifikovat typ schránkyčást XMLka:  <FindDataBox xmlns="http://isds.czechpoint.cz/v20"> <dbOwnerInfo> <dbType>PFO</dbType> <ic>12</ic> <pnLastName>Hla</pnLastName> <pnLastNameAtBirth>Ul</pnLastNameAtBirth> <firmName>Pr</firmName> </dbOwnerInfo> </FindDataBox>
Prosím o radu co chybí. Při vyhledávání dle dbID problém nemám.Děkuji

57.1 Re: Vyhledávání

admin 23.01.2017 08:59

Dobrý den.

Zkusil jsem a vrací mi to 0002 - Podmínkám neodpovídá žádná datová schránka.

Nevím co víc - jako kdo jste přihlášen? Vyzkoušejte ještě nějaké kombinace a zkuste prosám přijít, na čem to závisí. Vyhledávání se nezměnilo už mnoho měsíců a nikdo nic nehlásil.

 

s pozdravem

Jan Šíma

57.1.1 Re: Re: Vyhledávání

admin 23.01.2017 08:59

Dobrý den,

 

vyzkoušel jsem spoustu variant a přišel jsem na následující.

Pracuji s Delphi7 (Import wsdl dělám aktualizovaným importérem. Importér v Delphi7 je zastaralý.). Bohužel i aktualizovaný importér při generování tříd z wsdl ignoruje následující:

<xs:group ref="tns:gPersonName" />

<xs:group ref="tns:gBirthInfo" />

atd.

 

Až na vyhledávání si alespoň "dotazy" mohu nechat generovat automaticky, odpovědi jsem nucen ručně zpracovávat.

Bohužel při vyhledávání jsou v definicích služeb výše uvedené příklady, které importér ignoruje a já musím xmlko složit ručně ( Postup, kdy před odesláním nahrazuji vygenerované xmlko svým vlastním, bohužel používám i při komunikaci elektronických receptů a funguje (zde je třeba doplnit podpis certifikátem), tedy toto řešení pokládám za funkční, i když rozhodně ne za optimální).

Níže uvedený příklad jsem schopen vygenerovat jak ručně, tak také automaticky, jelikož položky, které se nachází v xmlku, nemají ve wsdl "group".

 

Při automatické vygenerování je samozřejmě v tomto případě vrácena chyba 2011 (Chyba ve struktuře ID datové schránky) a tedy vše OK.

Pokud ho ale vygeneruji ručně, je mi vrácena chyba 1101 (Nutno specifikovat typ schránky).

XMLka si ukládám v události BeforeExecute(const MethodName: string; var SOAPRequest: WideString) třídy THTTPRIO.

XMLka jsou v obou případech (ruční vs. automatické generování) naprosto totožná.

ID mé testovací schránky je: 3dubfw9

 

Jestli Vás cokoli napadá, rád vyzkouším.

 

Děkuji

Miloslav Růžička

 

 

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<FindDataBox xmlns="http://isds.czechpoint.cz/v20">
<dbOwnerInfo email="" telNumber="">
<dbID>123</dbID>
<dbType>PO</dbType>
<ic>1234</ic>
<firmName></firmName>
<nationality></nationality>
<identifier></identifier>
<registryCode></registryCode>
<dbState>0</dbState>
<dbEffectiveOVM>false</dbEffectiveOVM>
<dbOpenAddressing>false</dbOpenAddressing>
</dbOwnerInfo>
</FindDataBox>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

57.1.1.1 Re: Re: Re: Vyhledávání

admin 23.01.2017 08:59

Dobrý den.

 

Zkusil jsem přímo poslat váš příklad, a i v této podobě WS FindDataBox zcela bez problémů funguje a vrací správné odpovědi.

S Delphi nemáme žádné větší zkušenosti, nicméně určitě nejste první, viz seznam registrovaných vývojářů (https://team.smartadministration.cz/ssf/a/c/p_name/ss_forum/p_action/1/action/view_permalink/entityType/folderEntry/entryId/3497).

A ještě jeden nápad - pokud "vadí" pouze ta grupa v XSD definici, tak si ji ručně přepište na jednotlivé elementy, to tam nemá žádný specifický význam.

Jan Šíma

57.2 Re: Vyhledávání

admin 23.01.2017 08:59

Wsdl si samozřejmě upravit zkusím a doufám, že se mi to podaří.

Stejně by mě ale zajímalo, kde může být problém. Nemůžete se podívat, co k vám přichází, že server vrací takovouto hodnotu?

 

Děkuji

Miloslav Růžička

57.2.1 Re: Re: Vyhledávání

admin 23.01.2017 08:59

Dobrý den.

V archivu Builder fora (http://archive.delphi.cz/default.aspx?id=D2009_4) se někteří vývojáři k tomu problému Delphi vyjadřují a komponentu pro import wsdl nehodnotí moc kladně. Vím, že tam byla přímo diskuze o wsdl pro ISDS, ale ten jsem na rychlo nenašel.

Ta chyba 1101 znamená zhruba, že:

  1. XML jako celek je validni
  2. není zadán ID schránky
  3. typ schránky není zadán kontantou PO, OVM, PFO_ADVOK apod.

Zkuste zachytit opravdu to, co posíláte, protože ty ukázky, co jste poslal, tu chybu nevyvolají.

 

Jan Šíma