Бібліотека підтримки національного сервісу СЕВ ОВВ версії 2.0 (dir.gov.ua) для розробників та інтеграторів СЕД систем на мовах Erlang і Elixir. Сервіс верхнього рівня складається з наступних функцій:
inbox
from, count=100send
from, to, documentack
from, to, msg_id, type, regnum=""download
from, msg_id, delete=1download_all
from
Перший параметр -- ЄРДПО оргназації зареєстрованої в СЕВ. Другий параметр -- перші N повідомлень, які цікавлять.
> SEV.inbox "34239035"
{:incoming,
[
CreationDate: "2020-02-10T05:25:21Z",
Creator: "Sev",
Format: "Plain",
FromOrgId: "34239036",
FromSysId: "fcabd96e-06b5-47c3-801c-b5da8caab7c7",
MessageId: "49DF6EA1-1783-4279-AE32-1152E2202B2B",
Size: "226716",
ToOrgId: "34239035",
ToSysId: "99999999",
Type: "Document"
]}
Перший параметр -- ЄРДПО оргназації зареєстрованої в СЕВ.
> SEV.download "34239035", "49DF6EA1-1783-4279-AE32-1152E2202B2B"
{:downloading, #PID<0.1926.0>}
iex(26)>
03:28:00.860 [info] SEV {partial,{download,226716,0,226716,<<"37851912">>,226716,0}}
03:28:05.686 [info] SEV {final,{download,226716,226716,0,<<"37851912">>,0,0}}
03:28:05.844 [info] SEV hash verified 49DF6EA1-1783-4279-AE32-1152E2202B2B
nil
Перший параметр -- ЄРДПО оргназації зареєстрованої в СЕВ від імені якої посилається повідомлення. Другий параметр -- ЄРДПО оргназації зареєстрованої в СЕВ, адресату повідомлення. Третій параметр -- Бізнес-об'єкт документу як Erlang кортеж.
defmodule Test do
require ERP
def testDoc(guid) do
ERP.sevDoc(
date: "2020-02-10",
id: "12/19/12-15",
kind: "Лист",
annotation: "Інформування",
msg_type: 1,
msg_acknow: 2,
guid: guid,
attachments: [
ERP.fileDesc(
id: :sev.guid(),
seq_id: 1000,
fileName: "Повідомлення.pdf",
signed: "2020-02-10T13:12:07",
type: "pdf"
)
]
)
end
end
> SEV.send "34239035", "34239036", Test.testDoc(:sev.guid)
{:uploading, #PID<0.1954.0>}
iex(28)>
03:29:52.332 [info] SEV {partial,{upload,6428292,0,2500000,<<"37851914">>,6428292}}
03:29:54.370 [info] SEV {partial,{upload,6428292,2500000,2500000,<<"37851914">>,3928292}}
03:29:56.379 [info] SEV {partial,{upload,6428292,5000000,1428292,<<"37851914">>,1428292}}
03:30:04.454 [info] SEV {final,{upload,6428292,6428292,0,<<"37851914">>,0}}
03:30:04.779 [info] SEV 91844747-BF51-4804-895E-3A6844B69A0E Upload Processed 221135
nil
Дана бібліотека переживає рестарти як всього серверу,
так і окремих збоїв всередині окремих процесів завантаження для кожного файлу.
Усі Erlang процеси бібліотеки створюються під n2o
супервізором.
> :supervisor.which_children CRM
[
{{:sev, "78317F66-127D-4601-9CA9-E956525A7D56"}, #PID<0.1955.0>, :worker, [SEV.UP]},
{{:sev, "49DF6EA1-1783-4279-AE32-1152E2202B2B"}, #PID<0.1927.0>, :worker, [SEV.DOWN]},
{{:sev, "187108DB-FBE4-4A7D-8AD5-A2DE2BDEAC0D"}, #PID<0.1789.0>, :worker, [SEV.UP]},
{{:sev, "34239035"}, #PID<0.1785.0>, :worker, [SEV]},
{{:sev, "34239036"}, #PID<0.1107.0>, :worker, [SEV]},
{{:sev, "34239034"}, #PID<0.1105.0>, :worker, [SEV]}
]
ДП "Інфотех"
Максим Сохацький