SUPPORT-8412: add rpc for extract button; fix standalone

This commit is contained in:
gulnaz 2024-08-18 23:25:57 +03:00
parent b76cdfe121
commit 11883a72ad
7 changed files with 907 additions and 6 deletions

View file

@ -32,6 +32,8 @@ public class ErvuDataController {
@Value("${kafka.ervu.recruit.reply.topic}") @Value("${kafka.ervu.recruit.reply.topic}")
private String replyTopic; private String replyTopic;
@Value("${kafka.ervu.subpoena.timeout:10}")
private int timeout;
public ErvuDataController(KafkaProducerService kafkaProducerService, public ErvuDataController(KafkaProducerService kafkaProducerService,
ConsumerFactory<String, Bytes> consumerFactory, ConsumerFactory<String, Bytes> consumerFactory,
@ -56,7 +58,7 @@ public class ErvuDataController {
try (Consumer<String, Bytes> consumer = try (Consumer<String, Bytes> consumer =
consumerFactory.createConsumer("fl-recruit", null)) { consumerFactory.createConsumer("fl-recruit", null)) {
consumer.subscribe(Collections.singletonList(replyTopic)); consumer.subscribe(Collections.singletonList(replyTopic));
ConsumerRecords<String, Bytes> consumerRecords = consumer.poll(Duration.ofSeconds(10)); ConsumerRecords<String, Bytes> consumerRecords = consumer.poll(Duration.ofSeconds(timeout));
consumerRecords.forEach(record -> { consumerRecords.forEach(record -> {
try { try {

View file

@ -0,0 +1,72 @@
package ervu_lkrp_fl.ervu_lkrp_fl.rpc;
import java.time.Duration;
import java.util.Collections;
import java.util.concurrent.atomic.AtomicReference;
import com.google.protobuf.InvalidProtocolBufferException;
import ervu_lkrp_fl.ervu_lkrp_fl.dto.FileData;
import ervu_lkrp_fl.ervu_lkrp_fl.dto.PersonWithFormatRequestDto;
import ervu_lkrp_fl.ervu_lkrp_fl.service.KafkaProducerService;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.common.utils.Bytes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.kafka.core.ConsumerFactory;
import rtl.pgs.ervu.proto.ExtractRegistry;
import rtl.pgs.ervu.proto.LkrpResponse;
import rtl.pgs.ervu.proto.ResponseData;
import ru.cg.webbpm.modules.webkit.annotations.RpcCall;
import ru.cg.webbpm.modules.webkit.annotations.RpcService;
import ru.cg.webbpm.modules.webkit.beans.Behavior;
/**
* @author gulnaz
*/
@RpcService
public class ExtractRpcService extends Behavior {
@Autowired
private KafkaProducerService kafkaProducerService;
@Autowired
private ConsumerFactory<String, Bytes> consumerFactory;
@Value("${kafka.ervu.subpoena.extract.reply.topic}")
private String subpoenaExtractReplyTopic;
@Value("${kafka.ervu.registry.extract.reply.topic}")
private String registryExtractReplyTopic;
@Value("${kafka.ervu.extract.timeout:20}")
private int timeout;
@RpcCall
public FileData getExtract(PersonWithFormatRequestDto request) {
kafkaProducerService.sendRequestForExtract(request);
AtomicReference<FileData> fileDataRef = new AtomicReference<>();
try (Consumer<String, Bytes> consumer =
consumerFactory.createConsumer("fl-extract", null)) {
String topic = request.formatExtractRegistry().equals("1")
? subpoenaExtractReplyTopic
: registryExtractReplyTopic;
consumer.subscribe(Collections.singletonList(topic));
ConsumerRecords<String, Bytes> consumerRecords = consumer.poll(Duration.ofSeconds(timeout));
consumerRecords.forEach(record -> {
try {
ResponseData responseData = ResponseData.parseFrom(record.value().get());
ExtractRegistry extractRegistry = responseData.getDataRegistryInformation().getExtractRegistry();
fileDataRef.set(new FileData(extractRegistry.getFileName(), extractRegistry.getFileType(),
extractRegistry.getFile().toByteArray()));
}
catch (InvalidProtocolBufferException e) {
throw new RuntimeException("Failed to parse data", e);
}
});
consumer.commitSync();
}
return fileDataRef.get();
}
}

View file

@ -4,6 +4,7 @@ import java.nio.charset.StandardCharsets;
import java.util.UUID; import java.util.UUID;
import ervu_lkrp_fl.ervu_lkrp_fl.dto.PersonRequestDto; import ervu_lkrp_fl.ervu_lkrp_fl.dto.PersonRequestDto;
import ervu_lkrp_fl.ervu_lkrp_fl.dto.PersonWithFormatRequestDto;
import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.ProducerRecord;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.core.KafkaTemplate;
@ -19,16 +20,33 @@ public class KafkaProducerService {
private final KafkaTemplate<String, Object> kafkaTemplate; private final KafkaTemplate<String, Object> kafkaTemplate;
@Value("${kafka.ervu.recruit.request.topic}") @Value("${kafka.ervu.recruit.request.topic}")
private String requestTopic; private String recruitRequestTopic;
@Value("${kafka.ervu.recruit.header.class}") @Value("${kafka.ervu.recruit.header.class}")
private String headerClass; private String recruitHeaderClass;
@Value("${kafka.ervu.subpoena.extract.request.topic}")
private String subpoenaExtractRequestTopic;
@Value("${kafka.ervu.registry.extract.request.topic}")
private String registryExtractRequestTopic;
@Value("${kafka.ervu.extract.header.class}")
private String extractHeaderClass;
public KafkaProducerService(KafkaTemplate<String, Object> kafkaTemplate) { public KafkaProducerService(KafkaTemplate<String, Object> kafkaTemplate) {
this.kafkaTemplate = kafkaTemplate; this.kafkaTemplate = kafkaTemplate;
} }
public void sendRequest(PersonRequestDto request) { public void sendRequest(PersonRequestDto request) {
ProducerRecord<String, Object> record = new ProducerRecord<>(requestTopic, sendRequest(request, recruitRequestTopic, recruitHeaderClass);
}
public void sendRequestForExtract(PersonWithFormatRequestDto request) {
String topic = request.formatExtractRegistry().equals("1")
? subpoenaExtractRequestTopic
: registryExtractRequestTopic;
sendRequest(request, topic, extractHeaderClass);
}
private void sendRequest(Object request, String topic, String headerClass) {
ProducerRecord<String, Object> record = new ProducerRecord<>(topic,
UUID.randomUUID().toString(), request); UUID.randomUUID().toString(), request);
record.headers().add("class", headerClass.getBytes(StandardCharsets.UTF_8)); record.headers().add("class", headerClass.getBytes(StandardCharsets.UTF_8));
kafkaTemplate.send(record); kafkaTemplate.send(record);

View file

@ -71,3 +71,8 @@ xa-data-source add \
/system-property=kafka.ervu.recruit.request.topic:add(value="ervu.recruit.info.request") /system-property=kafka.ervu.recruit.request.topic:add(value="ervu.recruit.info.request")
/system-property=kafka.ervu.recruit.reply.topic:add(value="ervu.recruit.info.response") /system-property=kafka.ervu.recruit.reply.topic:add(value="ervu.recruit.info.response")
/system-property=kafka.ervu.recruit.header.class:add(value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5") /system-property=kafka.ervu.recruit.header.class:add(value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5")
/system-property=kafka.ervu.subpoena.extract.request.topic:add(value="ervu.subpoena.info.request")
/system-property=kafka.ervu.subpoena.extract.reply.topic:add(value="ervu.subpoena.info.response")
/system-property=kafka.ervu.registry.extract.request.topic:add(value="ervu.extract.info.request")
/system-property=kafka.ervu.registry.extract.reply.topic:add(value="ervu.extract.info.response")
/system-property=kafka.ervu.extract.header.class:add(value="Request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3")

View file

@ -63,6 +63,11 @@
<property name="kafka.ervu.recruit.request.topic" value="ervu.recruit.info.request"/> <property name="kafka.ervu.recruit.request.topic" value="ervu.recruit.info.request"/>
<property name="kafka.ervu.recruit.reply.topic" value="ervu.recruit.info.response"/> <property name="kafka.ervu.recruit.reply.topic" value="ervu.recruit.info.response"/>
<property name="kafka.ervu.recruit.header.class" value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5"/> <property name="kafka.ervu.recruit.header.class" value="Request@urn://rostelekom.ru/RP-SummonsTR/1.0.5"/>
<property name="kafka.ervu.subpoena.extract.request.topic" value="ervu.subpoena.info.request"/>
<property name="kafka.ervu.subpoena.extract.reply.topic" value="ervu.subpoena.info.response"/>
<property name="kafka.ervu.registry.extract.request.topic" value="ervu.extract.info.request"/>
<property name="kafka.ervu.registry.extract.reply.topic" value="ervu.extract.info.response"/>
<property name="kafka.ervu.extract.header.class" value="request@urn://rostelekom.ru/ERVU-extractFromRegistryTR/1.0.3"/>
</system-properties> </system-properties>
<management> <management>
<audit-log> <audit-log>

View file

@ -0,0 +1,83 @@
import {
AbstractButton,
AnalyticalScope,
Behavior,
Event,
NotNull,
Visible
} from "@webbpm/base-package";
import {ExtractRpcService} from "../../../generated/ervu_lkrp_fl/ervu_lkrp_fl/rpc/ExtractRpcService";
// TODO remove; replace REQUEST_JSON with user id from token
const REQUEST_JSON = {
"common": {
"lastName": "Иванов",
"firstName": "Сергей",
"middleName": "Федорович",
"birthDate": "12.01.2005",
"snils": "08301894460",
"idERN": "111666898287"
},
"document": {
"series": "4502",
"number": "160381",
"issueDate": "12.01.2019"
},
"formatExtractRegistry": "1"
}
@AnalyticalScope(AbstractButton)
export class ExtractLoadService extends Behavior {
@Visible("false")
public successEvent: Event<boolean> = new Event<boolean>();
@Visible("false")
public errorEvent: Event<boolean> = new Event<boolean>();
@NotNull()
public formatExtractRegistry: string;
private button: AbstractButton;
private rpc: ExtractRpcService;
private onClickFunction: Function;
initialize() {
super.initialize();
this.button = this.getScript(AbstractButton);
this.rpc = this.getScript(ExtractRpcService);
this.onClickFunction = () => {
REQUEST_JSON.formatExtractRegistry = this.formatExtractRegistry;
this.rpc.getExtract(REQUEST_JSON)
.then(fileData => {
const newBlob = new Blob([fileData['file']],
{ type: fileData['fileType'] });
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveBlob(newBlob);
}
else {
const data = window.URL.createObjectURL(newBlob);
const link = document.createElement("a");
link.href = data;
link.download = fileData['fileName'];
link.click();
URL.revokeObjectURL(data);
link.remove();
this.successEvent.trigger();
}
})
.catch(() => {
this.errorEvent.trigger();
});
}
}
bindEvents() {
super.bindEvents();
this.button.addClickListener(this.onClickFunction);
}
unbindEvents() {
super.unbindEvents();
this.button.removeClickListener(this.onClickFunction);
}
}

View file

@ -429,7 +429,6 @@
<componentRootId>cefc3626-d99a-434e-983e-224ac0c15a4c</componentRootId> <componentRootId>cefc3626-d99a-434e-983e-224ac0c15a4c</componentRootId>
<name>FS - 1.1.1 (Повестки)</name> <name>FS - 1.1.1 (Повестки)</name>
<container>true</container> <container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f"> <scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f">
<properties> <properties>
@ -1306,6 +1305,340 @@
</value> </value>
</item> </item>
</value> </value>
</entry>
</properties>
</scripts>
</children>
<children id="05edf991-97e8-46e9-b772-21dc3a2085e9">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>05edf991-97e8-46e9-b772-21dc3a2085e9</componentRootId>
<name>AC - ошибка загрузки выписки</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"cfb60860-1b04-4eb5-9ccf-1e6436c27b09","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"errorEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"0684bad5-3100-43c9-a1e8-0efe6eb62ae6","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>true</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="67f88903-a6e9-4c17-a583-0b004a5ec393" removed="true"/>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="a0a3b0de-7f6e-4a1c-8c97-67286dd27629">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>a0a3b0de-7f6e-4a1c-8c97-67286dd27629</componentRootId>
<name>AC - показать загрузку</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"cfb60860-1b04-4eb5-9ccf-1e6436c27b09","packageName":"component.button","className":"Button","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"clickEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"0684bad5-3100-43c9-a1e8-0efe6eb62ae6","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>false</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="43e7cf82-7b82-4a14-bd61-071347955b6d" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"8ed0924a-73dc-4732-8426-0a7217654309","packageName":"component.container","className":"HBox","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>true</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="bbec6bfa-4f30-421b-ad69-fc980a7b516a">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>bbec6bfa-4f30-421b-ad69-fc980a7b516a</componentRootId>
<name>AC - спрятать загрузку</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"cfb60860-1b04-4eb5-9ccf-1e6436c27b09","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"successEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
<item id="88cdd943-1192-41ec-86cf-3817fb8b47e6" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"cfb60860-1b04-4eb5-9ccf-1e6436c27b09","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"errorEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="true"/>
<item id="43e7cf82-7b82-4a14-bd61-071347955b6d" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"8ed0924a-73dc-4732-8426-0a7217654309","packageName":"component.container","className":"HBox","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>false</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry> </entry>
</properties> </properties>
</scripts> </scripts>
@ -1416,6 +1749,30 @@
</entry> </entry>
</properties> </properties>
</scripts> </scripts>
<scripts id="7222fcd1-2022-4814-81d9-9dfd535f1410">
<classRef type="TS">
<className>ExtractLoadService</className>
<packageName>ervu.component.button</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>formatExtractRegistry</key>
<value>
<simple>"1"</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="3380990f-3be0-442d-af4e-d31c8da7d39e">
<classRef type="JAVA">
<className>ExtractRpcService</className>
<packageName>ervu_lkrp_fl.ervu_lkrp_fl.rpc</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
</scripts>
</children> </children>
<children id="d671da65-59d4-4b34-8850-2e3039a502e5"> <children id="d671da65-59d4-4b34-8850-2e3039a502e5">
<prototypeId>fd7e47b9-dce1-4d14-9f3a-580c79f59579</prototypeId> <prototypeId>fd7e47b9-dce1-4d14-9f3a-580c79f59579</prototypeId>
@ -1528,6 +1885,7 @@
<componentRootId>c3fc56e5-4aec-44e3-92ed-5fb7b6a68519</componentRootId> <componentRootId>c3fc56e5-4aec-44e3-92ed-5fb7b6a68519</componentRootId>
<name>FS - 1.1.2 (Временные меры)</name> <name>FS - 1.1.2 (Временные меры)</name>
<container>true</container> <container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f"> <scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f">
<properties> <properties>
@ -3538,7 +3896,6 @@
<componentRootId>304824d5-9f9f-4af9-9b08-6232f7536774</componentRootId> <componentRootId>304824d5-9f9f-4af9-9b08-6232f7536774</componentRootId>
<name>FS - 1.1.3 (Воинский учёт)</name> <name>FS - 1.1.3 (Воинский учёт)</name>
<container>true</container> <container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f"> <scripts id="46f20297-81d1-4786-bb17-2a78ca6fda6f">
<properties> <properties>
@ -4500,6 +4857,30 @@
</entry> </entry>
</properties> </properties>
</scripts> </scripts>
<scripts id="70616f56-e7ff-4aeb-bdc8-b3bf52811224">
<classRef type="TS">
<className>ExtractLoadService</className>
<packageName>ervu.component.button</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>formatExtractRegistry</key>
<value>
<simple>"2"</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="b821375f-f5a9-4a85-8b0a-2fff5e2da2a5">
<classRef type="JAVA">
<className>ExtractRpcService</className>
<packageName>ervu_lkrp_fl.ervu_lkrp_fl.rpc</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
</scripts>
</children> </children>
<children id="f10c801c-e47e-4383-87fd-cce707956c3b"> <children id="f10c801c-e47e-4383-87fd-cce707956c3b">
<prototypeId>fd7e47b9-dce1-4d14-9f3a-580c79f59579</prototypeId> <prototypeId>fd7e47b9-dce1-4d14-9f3a-580c79f59579</prototypeId>
@ -5190,6 +5571,340 @@
</value> </value>
</item> </item>
</value> </value>
</entry>
</properties>
</scripts>
</children>
<children id="e3897ec9-927e-463b-b93c-9dbec04cba19">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>e3897ec9-927e-463b-b93c-9dbec04cba19</componentRootId>
<name>AC - ошибка загрузки выписки</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d68b5c38-9ed6-4596-9b0c-dd1dc542c5ef","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"errorEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"f7303dfe-f3ef-42a6-bb59-8b818f38708b","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>true</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="67f88903-a6e9-4c17-a583-0b004a5ec393" removed="true"/>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="159eb91b-77f2-4bd4-93d4-98564fadb8b5">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>159eb91b-77f2-4bd4-93d4-98564fadb8b5</componentRootId>
<name>AC - показать загрузку</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d68b5c38-9ed6-4596-9b0c-dd1dc542c5ef","packageName":"component.button","className":"Button","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"clickEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"f7303dfe-f3ef-42a6-bb59-8b818f38708b","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>false</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="43e7cf82-7b82-4a14-bd61-071347955b6d" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"9efda70f-bb28-4d82-964f-a2a5380bf5c1","packageName":"component.container","className":"HBox","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>true</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="c2119ea5-0827-430b-85b0-e500d7409c87">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>c2119ea5-0827-430b-85b0-e500d7409c87</componentRootId>
<name>AC - спрятать загрузку</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>eventRefs</key>
<value>
<item id="d787976d-f20a-4fd9-9e96-5625e7ad9f30" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d68b5c38-9ed6-4596-9b0c-dd1dc542c5ef","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"successEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
<item id="88cdd943-1192-41ec-86cf-3817fb8b47e6" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d68b5c38-9ed6-4596-9b0c-dd1dc542c5ef","packageName":"ervu.component.button","className":"ExtractLoadService","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"errorEvent"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c180c218-735b-400f-a78c-3fe8315b3779" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6cd33550-286a-4b9b-80e1-d6be94f1d57a" removed="true"/>
<item id="43e7cf82-7b82-4a14-bd61-071347955b6d" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"9efda70f-bb28-4d82-964f-a2a5380bf5c1","packageName":"component.container","className":"HBox","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setVisible"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>boolean</className>
<packageName></packageName>
</implRef>
<simple>false</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry> </entry>
</properties> </properties>
</scripts> </scripts>
@ -5222,6 +5937,7 @@
<componentRootId>dbe60a18-ce7a-4423-9e5e-816edb7b0b4f</componentRootId> <componentRootId>dbe60a18-ce7a-4423-9e5e-816edb7b0b4f</componentRootId>
<name>VB - 1.2</name> <name>VB - 1.2</name>
<container>true</container> <container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered> <childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f"> <scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties> <properties>