Integracja Obieg Dokumentów - GiS Spis treści 1.Opis integracji.... 2 2.Interfejs po stronie Obiegu Dokumentów... 4 3.Interfejs po stronie Gis-u.... 7 4.Schematy przesyłanych plików xml.... 8 1
1. Opis integracji. Integracja między systemami zostanie oparta o protokół SOAP. Systemy połączone zostaną usługą sieciową wykorzystującą pliki XML do przekazywania danych. Rysunek 1 przedstawia diagram sekwencji integracji. Rysunek 1: Diagram komunikacji Komunikaty wynikowe są w formacie liczbowym. Każda metoda zwraca 1 jeśli wykonała się poprawnie, 0 jeśli w trakcie wykonywania wystąpił błąd. Parametry kontrahent_xml oraz 2
dokument_xml są zakodowanymi w base64 plikami xml zgodnymi ze schematami xsd: dokument.xsd oraz kontrahent.xsd. Opis wymiany danych pomiędzy systemami: zalozsprawe (GIS->Obieg Dokumentów) system GIS przesyła do systemu Obiegu Dokumentów żądanie założenia sprawy zawierające identyfikator dokumentu z systemu Eobieg, numer kategorii JRWA oraz identyfikator użytkownika z systemu Obiegu Dokumentów zakładającego sprawę. W momencie otrzymania takiego żądania w systemie Obiegu Dokumentów wykonywane są czynności związane z założeniem sprawy następnie odsyłana jest informacja do systemu GIS zawierająca identyfikator sprawy z systemu Obiegu Dokumentów wraz z numerem sprawy. System GIS powinien stworzyć z dokumentu którego dotyczyło pierwsze żądanie sprawę o numerze otrzymanym z systemu Obiegu Dokumentów. Jednocześnie w celu późniejszej wymiany danych system GIS powinien powiązać założoną sprawę z otrzymanym identyfikatorem sprawy z systemu Obiegu Dokumentów; przypiszdokumentdosprawy (GIS-> Obieg Dokumentów) system GIS przesyła do systemu Eobieg żądanie przypisania wcześniej otrzymanego dokumentu do sprawy zawierające identyfikator dokumentu z systemu Obiegu Dokumentów oraz identyfikator sprawy z systemu Obiegu Dokumentów. System Obiegu Dokumentów po otrzymaniu żądania wykonuje czynności związane z przypisaniem dokumentu do sprawy; zglosblednadekretacje (GIS-> Obieg Dokumentów) system GIS przesyła do systemu Obiegu Dokumentów informację o błędnej dekretacji wcześniej otrzymanego dokumentu zawierającą identyfikator dokumentu z systemu Obiegu Dokumentów oraz komentarz. System Obiegu Dokumentów po odebraniu żądania dokonuje cofnięcia błędnej dekretacji; zmienstatussprawy (GIS-> Obieg Dokumentów) system Gis w momencie zmiany statusu sprawy wysyła do systemu Obiegu Dokumentów informację o tym zawierającą identyfikator sprawy z systemu Obiegu Dokumentów oraz identyfikator statusu z systemu Obiegu Dokumentów; System Obiegu Dokumentów po otrzymaniu żądania dokonuje zmiany stanu sprawy; zarejestrujdokument (GIS->Obieg Dokumentów) system GIS przesyła nowy dokument do systemu Obiegu Dokumentów z żądaniem zarejestrowania dokumentu w systemie Obiegu Dokumentów. W parametrze żądania przesyłana jest informacja do którego pracownika należy przypisać przesłany dokument. System Obiegu Dokumentów po otrzymaniu dokumentu rejestruje go w swojej bazie danych; zarejestrujdokument(obiegu Dokumentów ->GIS) system Obiegu Dokumentów przesyła nowy dokument do systemu GIS z żądaniem zarejestrowania dokumentu w systemie GIS. W parametrze żądania przesyłana jest informacja do którego pracownika należy przypisać przesłany dokument. System GIS po otrzymaniu dokumentu sprawdza czy kontrahent który złożył dokument istnieje w jego bazie. Jeżeli nie dodaje go do bazy jeżeli tak to rejestruje dokument w swojej bazie danych; zmianadanychkontrahenta (GIS-> Obieg Dokumentów) system GIS przesyła do systemu Eobieg informację o zmianie danych kontrahenta zawierającą identyfikator użytkownika dokonującego zmiany z systemu Eobieg oraz dane kontrahenta który uległ zmianie. System Eobieg po otrzymaniu żądania dokonuje zmiany danych kontrahenta zapisanych w bazie danych; zmianadanychkontrahenta (Obieg Dokumentów ->GIS) system Eobieg przesyła do systemu GIS informację o zmianie danych kontrahenta zawierającą identyfikator użytkownika dokonującego zmiany z systemu Eobieg oraz dane kontrahenta który uległ zmianie. System GIS po otrzymaniu żądania powinien dokonać zmiany danych kontrahenta zapisanych w bazie danych; W celu odpowiedniego działania modułu integrującego obydwa systemy konieczne jest wcześniejsze zintegrowanie danych przechowywanych w obydwu bazach danych. Do tych danych należą: dane kontrahentów (GIS-> Obieg Dokumentów) 3
statusy spraw (GIS-> Obieg Dokumentów) dane użytkowników systemu (GIS-> Obieg Dokumentów) Jednolity Rzeczowy Wykaz Akt (JRWA) (Obieg Dokumentów ->GIS) Dane te powinny zostać wyeksportowane z jednego systemu i przekazane w formie umożliwiającej ich zaimportowanie do drugiego systemu. 1. Interfejs po stronie Obiegu Dokumentów Obieg Dokumentów posiada mechanizm webservice znajdujący się pod adresem: http:// Obieg Dokumentów /gis.php?wsdl. Gdzie ADRES_EOBIEG jest adresem pod jakim widzi Obieg Dokumentów system GIS. Dla przykładu może być to 192.168.0.10/obieg. Na listingu 2.1 pokazany jest interfejs usługi sieciowej obiegu w formacie WSDL. Listing 2.1 1. <definitions name="gis_wsdl" targetnamespace="urn:gis_wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:gis_wsdl" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap- ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/"> 2. <types xmlns="http://schemas.xmlsoap.org/wsdl/"/> 3. 4. <!-- Messages --> 5. <!-- Input parameters for method zalozsprawe --> 6. <message name="zalozsprawerequest"> 7. <part name="id_dokument" type="xsd:string"/> 8. <part name="numer_rwa" type="xsd:string"/> 9. <part name="id_uzytkownik" type="xsd:string"/> 10. </message> 11. <!-- Output for method zalozsprawe --> 12. <message name="zalozspraweresponse"> 13. <part name="zalozsprawe" type="xsd:int"/> 14. </message> 15. <!-- Input parameters for method przypiszdokumentdosprawy --> 16. <message name="przypiszdokumentdosprawyrequest"> 17. <part name="id_dokument_eobieg" type="xsd:int"/> 18. <part name="id_sprawy_eobieg" type="xsd:int"/> 19. </message> 20. <!-- Output for method przypiszdokumentdosprawy --> 21. <message name="przypiszdokumentdosprawyresponse"> 22. <part name="przypiszdokumentdosprawy" type="xsd:int"/> 23. </message> 24. <!-- Input parameters for method zglosblednadekretacje --> 25. <message name="zglosblednadekretacjerequest"> 26. <part name="id_uzytkownik" type="xsd:int"/> 27. <part name="id_dokument_eobieg" type="xsd:int"/> 28. <part name="komentarz" type="xsd:int"/> 29. </message> 30. <!-- Output for method zglosblednadekretacje --> 31. <message name="zglosblednadekretacjeresponse"> 32. <part name="zglosblednadekretacje" type="xsd:int"/> 33. </message> 34. <!-- Input parameters for method zmienstatussprawy --> 35. <message name="zmienstatussprawyrequest"> 36. <part name="id_sprawy_eobieg" type="xsd:int"/> 37. <part name="id_status_eobieg" type="xsd:int"/> 38. </message> 39. <!-- Output for method zmienstatussprawy --> 40. <message name="zmienstatussprawyresponse"> 41. <part name="zmienstatussprawy" type="xsd:int"/> 42. </message> 43. <!-- Input parameters for method zarejestrujdokument --> 44. <message name="zarejestrujdokumentrequest"> 4
45. <part name="dokument_xml" type="xsd:string"/> 46. </message> 47. <!-- Output for method zarejestrujdokument --> 48. <message name="zarejestrujdokumentresponse"> 49. <part name="zarejestrujdokument" type="xsd:int"/> 50. </message> 51. <!-- Input parameters for method zmianadanychkontrahenta --> 52. <message name="zmianadanychkontrahentarequest"> 53. <part name="id_user" type="xsd:string"/> 54. <part name="kotrahent_xml" type="xsd:string"/> 55. </message> 56. <!-- Output for method zmianadanychkontrahenta --> 57. <message name="zmianadanychkontrahentaresponse"> 58. <part name="zmianadanychkontrahenta" type="xsd:int"/> 59. </message> 60. 61. <!-- Ports --> 62. <porttype name="gis_wsdlport"><operation name="zalozsprawe"> 63. <input message="tns:zalozsprawerequest"/> 64. <output message="tns:zalozspraweresponse"/> 65. </operation> 66. <operation name="przypiszdokumentdosprawy"> 67. <input message="tns:przypiszdokumentdosprawyrequest"/> 68. <output message="tns:przypiszdokumentdosprawyresponse"/> 69. </operation> 70. <operation name="zglosblednadekretacje"> 71. <input message="tns:zglosblednadekretacjerequest"/> 72. <output message="tns:zglosblednadekretacjeresponse"/> 73. </operation> 74. <operation name="zmienstatussprawy"> 75. <input message="tns:zmienstatussprawyrequest"/> 76. <output message="tns:zmienstatussprawyresponse"/> 77. </operation> 78. <operation name="zarejestrujdokument"> 79. <input message="tns:zarejestrujdokumentrequest"/> 80. <output message="tns:zarejestrujdokumentresponse"/> 81. </operation> 82. <operation name="zmianadanychkontrahenta"> 83. <input message="tns:zmianadanychkontrahentarequest"/> 84. <output message="tns:zmianadanychkontrahentaresponse"/> 85. </operation> 86. </porttype> 87. 88. <!-- SOAP Bindings --> 89. <binding name="gis_wsdlbinding" type="tns:gis_wsdlport"> 90. <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> 91. <operation name="zalozsprawe"> 92. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#zalozsprawe"/> 93. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 94. </input> 95. <output> 96. <soap:body use="encoded" namespace="urn:gis_wsdl" 97. </output> 98. </operation> 99. <operation name="przypiszdokumentdosprawy"> 100. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#przypiszdokumentdosprawy"/> 101. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 102. </input> 103. <output> 104. <soap:body use="encoded" namespace="urn:gis_wsdl" 105. </output> 5
106. </operation> 107. <operation name="zglosblednadekretacje"> 108. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#zglosblednadekretacje"/> 109. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 110. </input> 111. <output> 112. <soap:body use="encoded" namespace="urn:gis_wsdl" 113. </output> 114. </operation> 115. <operation name="zmienstatussprawy"> 116. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#zmienstatussprawy"/> 117. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 118. </input> 119. <output> 120. <soap:body use="encoded" namespace="urn:gis_wsdl" 121. </output> 122. </operation> 123. <operation name="zarejestrujdokument"> 124. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#zarejestrujdokument"/> 125. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 126. </input> 127. <output> 128. <soap:body use="encoded" namespace="urn:gis_wsdl" 129. </output> 130. </operation> 131. <operation name="zmianadanychkontrahenta"> 132. <soap:operation soapaction="urn:gis_wsdl#gis_wsdl#zmianadanychkontrahenta"/> 133. <input><soap:body use="encoded" namespace="urn:gis_wsdl" 134. </input> 135. <output> 136. <soap:body use="encoded" namespace="urn:gis_wsdl" 137. </output> 138. </operation> 139. </binding> 140. 141. <!-- Service (location) --> 142. <service name="gis_wsdl"> 143. <documentation/> 144. <port name="gis_wsdlport" binding="tns:gis_wsdlbinding"><soap:address location="http://localhost:80/eobieg2_zdm_bb/gis.php"/> 145. </port> 146. </service> 147. </definitions> Webservice pokazany na listingu 1 obsługuje metody dostępowe systemu Obiegu Dokumentów. Dla łatwiejszego wyjaśnienia metody widoczne są na listingu 2.2. Listing 2.2 1. public zalozsprawe(int id_dokument, string numer_rwa, int id_uzytkownik) 2. { 3. 4. } 5. 6. 7. public przypiszdokumentdosprawy(int id_dokument_eobieg,int id_sprawy_eobieg) 6
8. { 9. 10. } 11. 12. public zglosblednadekretacje(int id_uzytkownik,int id_dokument_eobieg,string komentarz) 13. { 14. 15. } 16. 17. 18. public zmienstatussprawy(int id_sprawy_eobieg,int id_status_eobieg) 19. { 20. 21. } 22. 23. 24. public zarejestrujdokument(string $dokument_xml) 25. { 26. 27. } 28. 29. public zmianadanychkontrahenta(string id_user,string kotrahent_xml) 30. { 31. 32. } Przykładowe wywołanie webservice z poziomu języka PHP widoczne jest na listingu 2.3. Listing 2.3 1. $klient=new SoapClient("http://192.168.0.10/gis.php?wsdl"); 2. 3. //zakladanie sprawy 4. $klient->zalozsprawe(6913,111,176); W linii 1 listingu 3 następuje połączenie do usługi sieciowej obiegu. W linii 4 wykonana jest metoda zakładająca sprawę w obiegu. 1. Interfejs po stronie Gis-u. Usługa sieciowa po stronie Gis posiada metody widoczne na listingu 3.1. Listing 3.1 public zarejestrujdokument(string $dokument_xml) { } public zmianadanychkontrahenta(string id_user,string kotrahent_xml) { } Powyższe metody powinny zostać zaimplementowane po stronie GIS. 7
2. Schematy przesyłanych plików xml. Parametry metod o nazwie kontahent_xml oraz dokument_xml są przesyłane w postaci zakodowanej base64. Czyli implementacje metod usług sieciowych powinny odkodować zmienne a następnie traktować je jako treść dokumentów xml. Przykład w pseudo kodzie: Listing 4.1 1. public zarejestrujdokument(string dokument_xml) 2. { 3. xml=base64_decode(document_xml) 4. // zmienna xml zawiera treść dokumentu xml 5. } Parametr dokument_xml jest dokumentem w formacie xml zgodnym ze schematem widocznym na listingu 4.2. Listing 4.2: Schemat dokument.xsd. 1. <?xml version="1.0" encoding="utf-8"?> 2. <xsd:schema elementformdefault="qualified" xmlns:xsd="http://www.w3.org/2001/xmlschema" > 3. 4. 5. <xsd:complextype name="dokumenttype"> 6. <xsd:sequence> 7. <xsd:choice maxoccurs="1" minoccurs="1"> 8. minoccurs="0"> <xsd:element name="dogis" type="dogis" maxoccurs="1" 9. </xsd:element> 10. minoccurs="0"> <xsd:element name="doeobieg" type="doeobieg" maxoccurs="1" 11. </xsd:element> 12. </xsd:choice> 13. minoccurs="1"> <xsd:element name="metryczka" type="metryczka" maxoccurs="1" 14. </xsd:element> 15. <xsd:element name="zalaczniki" type="zalaczniki" maxoccurs="1" minoccurs="0"></xsd:element> 16. <xsd:element name="kontrahenci" type="kontrahenci" maxoccurs="1" minoccurs="1"></xsd:element> 17. </xsd:sequence> 18. </xsd:complextype> 19. 20. 21. <xsd:complextype name="dogis"> 22. <xsd:sequence> 23. <xsd:element name="id_dok_eobieg" type="xsd:int" maxoccurs="1" minoccurs="1"></xsd:element> 24. </xsd:sequence> 25. </xsd:complextype> 26. 8
27. <xsd:complextype name="doeobieg"> 28. <xsd:annotation> 29. <xsd:documentation>element występujący przy rejestrowaniu dokumentu z gis w eobieg</xsd:documentation> 30. </xsd:annotation> 31. <xsd:sequence> 32. <xsd:element name="id_sprawy_eobieg" type="xsd:int" maxoccurs="1" minoccurs="1"></xsd:element> 33. <xsd:element name="id_uzytkownik_eobieg" type="xsd:int" maxoccurs="1" minoccurs="1"></xsd:element> 34. </xsd:sequence> 35. </xsd:complextype> 36. 37. <xsd:complextype name="metryczka"> 38. <xsd:sequence> 39. <xsd:element name="data" type="xsd:string" maxoccurs="1" 40. minoccurs="1"> 41. </xsd:element> 42. <xsd:element name="numer" type="xsd:string" maxoccurs="1" 43. minoccurs="1"> 44. </xsd:element> 45. <xsd:element name="opis" type="xsd:string" maxoccurs="1" 46. minoccurs="0"> 47. </xsd:element> 48. <xsd:element name="dostarczono" type="dostarczono" maxoccurs="1" minoccurs="1"></xsd:element> 49. </xsd:sequence> 50. </xsd:complextype> 51. 52. 53. 54. 55. <xsd:complextype name="zalaczniki"> 56. <xsd:sequence> 57. <xsd:element name="zalacznik" type="zalacznik" maxoccurs="unbounded" minoccurs="0"></xsd:element> 58. </xsd:sequence> 59. </xsd:complextype> 60. 61. <xsd:complextype name="kontrahenci"> 62. <xsd:sequence> 63. <xsd:element name="kontrahent" type="kontrahent" maxoccurs="unbounded" minoccurs="1"></xsd:element> 64. </xsd:sequence> 65. </xsd:complextype> 66. 67. <xsd:element name="dokument" type="dokumenttype"></xsd:element> 68. 69. <xsd:complextype name="zalacznik"> 70. <xsd:sequence> 71. <xsd:element name="plik" type="xsd:string" maxoccurs="1" minoccurs="1"></xsd:element> 72. <xsd:element name="podpis" type="xsd:string" maxoccurs="1" minoccurs="0"></xsd:element> 73. </xsd:sequence> 74. <xsd:attribute name="nazwa" type="xsd:string"></xsd:attribute> 9
75. <xsd:attribute name="podpis" type="podpis"></xsd:attribute> 76. </xsd:complextype> 77. 78. 79. 80. <xsd:complextype name="kontrahent"> 81. <xsd:simplecontent> 82. <xsd:extension base="xsd:string"> 83. <xsd:attribute name="status" type="status"></xsd:attribute> 84. </xsd:extension> 85. </xsd:simplecontent> 86. </xsd:complextype> 87. 88. 89. 90. <xsd:simpletype name="podpis"> 91. <xsd:restriction base="xsd:string"> 92. <xsd:enumeration value="zew"></xsd:enumeration> 93. <xsd:enumeration value="wew"></xsd:enumeration> 94. </xsd:restriction> 95. </xsd:simpletype> 96. 97. <xsd:simpletype name="dostarczono"> 98. <xsd:annotation> 99. <xsd:documentation>o - osobiście, 100. m- mailem, 101. f- faxem, 102. p- pocztą 103. e- przez esp</xsd:documentation> 104. </xsd:annotation> 105. <xsd:restriction base="xsd:string"> 106. <xsd:enumeration value="o"></xsd:enumeration> 107. <xsd:enumeration value="p"></xsd:enumeration> 108. <xsd:enumeration value="f"></xsd:enumeration> 109. <xsd:enumeration value="m"></xsd:enumeration> 110. <xsd:enumeration value="e"></xsd:enumeration> 111. </xsd:restriction> 112. </xsd:simpletype> 113. 114. <xsd:simpletype name="status"> 115. <xsd:restriction base="xsd:string"> 116. <xsd:enumeration value="glowny"></xsd:enumeration> 117. <xsd:enumeration value="dodatkowy"></xsd:enumeration> 118. </xsd:restriction> 119. </xsd:simpletype> 120. </xsd:schema> Przykładowy dokument zgodny ze schematem z listingu 4.2. Listing 4.2 1. <?xml version="1.0" encoding="utf-8"?> 2. <dokument> 10
3. <doeobieg> 4. <id_sprawy_eobieg>123</id_sprawy_eobieg> 5. <id_uzytkownik_eobieg>111</id_uzytkownik_eobieg> 6. </doeobieg> 7. <metryczka> 8. <data>data</data> 9. <numer>12</numer> 10. <opis>opis</opis> 11. <dostarczono>o</dostarczono> 12. </metryczka> 13. <zalaczniki> 14. <zalacznik nazwa="nazwa_pliku" podpis="zew" > 15. <plik>base64 zalacznika binarnego</plik> 16. <podpis>base64 podpisu</podpis> 17. </zalacznik > 18. <zalacznik nazwa="nazwa_pliku"> 19. <plik>base64 zalacznika binarnego</plik> 20. </zalacznik> 21. </zalaczniki> 22. <kontrahenci> 23. <kontrahent status="glowny"> 24. base64 kontrahent_xml 25. </kontrahent > 26. <kontrahent status="dodatkowy" > 27. base64 kontrahent_xml 28. </kontrahent> 29. </kontrahenci> 30. </dokument> Przed wysłaniem powinien zostać zakodowany w base64. Parametr kontahent_xml jest dokumentem xml zgodnym ze schematem widocznym na listingu 4.3. Listing 4.3 1. <?xml version="1.0" encoding="utf-8"?> 2. <schema elementformdefault="qualified" xmlns="http://www.w3.org/2001/xmlschema" > 3. 4. <element name="kontrahent"> 5. <complextype> 6. <sequence> 7. <element name="id_eobieg" type="string" maxoccurs="1" 8. minoccurs="1"> 9. </element> 10. <element name="id_typ_eobieg" type="string" maxoccurs="1" minoccurs="1"></element> 11. <element name="nazwa" type="string" maxoccurs="1" 12. minoccurs="1"> 13. </element> 14. <element name="ulica_miejscowosc" type="string" 15. maxoccurs="1" minoccurs="1"> 11
16. </element> 17. <element name="nr_domu" type="string" maxoccurs="1" 18. minoccurs="1"> 19. </element> 20. <element name="kod_pocztowy" type="string" maxoccurs="1" 21. minoccurs="1"> 22. </element> 23. <element name="regon" type="string" maxoccurs="1" 24. minoccurs="0"> 25. </element> 26. <element name="nip" type="string" maxoccurs="1" 27. minoccurs="0"> 28. </element> 29. <element name="poczta" type="string" maxoccurs="1" 30. minoccurs="0"> 31. </element> 32. <element name="telefon" type="string" maxoccurs="1" 33. minoccurs="0"> 34. </element> 35. <element name="telefon_kom" type="string" maxoccurs="1" 36. minoccurs="0"> 37. </element> 38. <element name="email" type="string" maxoccurs="1" 39. minoccurs="0"> 40. </element> 41. <element name="pesel" type="string" maxoccurs="1" 42. minoccurs="0"> 43. </element> 44. <element name="krs" type="string" maxoccurs="1" 45. minoccurs="0"> 46. </element> 47. <element name="fax" type="string" maxoccurs="1" 48. minoccurs="0"> 49. </element> 50. </sequence> 51. </complextype> 52. </element> 53. 54. </schema> Przykładowy dokument zgodny ze schematem z listingu 4.4: Listing 4.4 1. <?xml version="1.0" encoding="utf-8"?> 2. <kontrahent> 3. <id_eobieg>0</id_eobieg> 4. <id_typ_eobieg>1</id_typ_eobieg> 5. <nazwa>nazwa</nazwa> 6. <ulica_miejscowosc>ulica</ulica_miejscowosc> 7. <nr_domu>12</nr_domu> 8. <kod_pocztowy>22-100</kod_pocztowy> 9. <regon>123</regon> 12
10. <nip>123</nip> 11. <poczta>lublin</poczta> 12. <telefon>213123</telefon> 13. <telefon_kom>123213</telefon_kom> 14. <email>mail@mail.pl</email> 15. <pesel>123</pesel> 16. <krs>123</krs> 17. <fax>123</fax> 18. </kontrahent> Przed wysłaniem powinien zostać zakodowany w base64. 13