Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация
iconfalse
titleПостановка задачи


Подсказка

Инструмент: Палитра XML

Свойства страницы
Статус

Статус
colour

Yellow

Grey
title

В РАБОТЕ

Черновик

Автор
Раздел
Васильев Антон 
Действия
Комментарий

Блок кода
панель

На этой странице:

Оглавление

Постановка задачи

-

Инструмент

Палитра XML

Реализация

titleРеализация

Оглавление

панель
title<Сопроводительная информация>



  1. Создать схему диалога

  2. Создать форму диалога

  3. Создать handler (JS-Обработчик операций)

  4. Создать схему кнопок для подключения в представление

  5. Создать форму и в RootMenu создать button и подключить к нему handler

  6. Подключить форму к дескриптору


Блок кода
languagejs
importClass(Packages.ru.intertrust.cmj.af.exceptions.AFDaoBadParameterException);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.TunableObjectREST);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.TunableObjectREST.Resource);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.TunableOperation);
importClass(Packages.ru.intertrust.cmj.tunable.object.AnyTunableObject);
importClass(Packages.ru.intertrust.cmj.tunable.object.TunableObjectApplication);
importClass(Packages.ru.intertrust.cmj.tunable.object.TunableObjectApplication.ClientContextKey);
importClass(Packages.ru.intertrust.cmj.tunable.object.common.TunableObjectHelper);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.OperationJScriptREST);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.OperationJScriptREST.ReturnParamsResource);
importClass(Packages.ru.intertrust.cmj.af.version.VersionApplication);
importClass(Packages.ru.intertrust.cmj.dp.DPApplication);
importPackage(Packages.ru.intertrust.cmj.af.utils);
importPackage(Packages.ru.intertrust.cmj.af.tuning.impl);
importPackage(Packages.ru.intertrust.cmj.af.tuning);
importPackage(Packages.ru.intertrust.cmj.rest.tuning);
importPackage(Packages.java.util);
importPackage(Packages.java.lang);
importClass(Packages.ru.intertrust.cmj.rest.core.ResourceLink);
importClass(Packages.ru.intertrust.cmj.af.core.AFSession);
importClass(Packages.ru.intertrust.cmj.af.tuning.TuningApplication);
importClass(Packages.ru.intertrust.cmj.rest.version.VersionCardResource);
importClass(Packages.ru.intertrust.cmj.rest.core.ExtendedResourceReference);
importClass(Packages.ru.intertrust.cmj.rest.core.ReferenceFactory);
importClass(Packages.ru.intertrust.cmj.rest.tuning.TuningHelper);
importClass(Packages.ru.intertrust.cmj.tunable.object.history.TunableHistoryHelper);
importClass(Packages.ru.intertrust.cmj.af.history.HasHistory);
importClass(Packages.ru.intertrust.cmj.af.history.FieldBase);

importClass(Packages.ru.intertrust.cmj.af.core.AFObject);
importClass(Packages.ru.intertrust.cmj.dp.DPM);
importClass(Packages.ru.intertrust.cmj.dp.DPMAdvInput);
importClass(Packages.ru.intertrust.cmj.dp.DPMContracts);
importClass(Packages.ru.intertrust.cmj.rest.misc.PermitHelper);
importClass(Packages.ru.intertrust.cmj.rest.bf.BFHelper);
importClass(Packages.ru.intertrust.cmj.rest.rkk.CopyRkkAction);
importClass(Packages.ru.intertrust.cmj.rest.rkk.RkkResource);
importClass(Packages.ru.intertrust.cmj.dp.operations.DPOperations);
importClass(Packages.ru.intertrust.cmj.dp.fdnd.FDSharedToolsD);
importClass(Packages.ru.intertrust.cmj.af.core.AFCMDomino);

importClass(Packages.java.lang.System);

function process(paramsResource, returnResource) {
	if (paramsResource == null) {
		throw new IllegalArgumentException("paramsResource must no be null.");
	}
	var paramPackageId = TunableObjectHelper.getAFInstanceValue(paramsResource.tuning().getValues().get("counter"));
	if (paramPackageId.equals("context")) {
		process_context(paramsResource, returnResource);
	}
}

function process_context(paramsResource, returnResource) {
    var appTNObject = AFSession.get().getApplication(TunableObjectApplication.class);
	var message = appTNObject.composeDialog("CreateCopyRegDialog", null, null, null);
	TunableObjectHelper.putAFInstanceValue(message, "count", "");
	TunableObjectHelper.putAFInstanceValue(message, "counter", "answer1");
    var ids = appTNObject.getClientContextIds(paramsResource.tuning());
	TunableObjectHelper.putAFInstanceValue(message.tuning(), "selectIds", ids);
	var resource = TunableObjectREST.Resource.create(message);
	//ссылка на следующий обработчик
	resource.link.add(new ResourceLink(OperationJScriptREST.OperationReference.REL, new OperationJScriptREST.OperationReference("regCopyesAsync")));
	returnResource.resource = resource;
}

	]]></script>
    </handler>
    <async-handler name="Зарегистрированные копииAsync" id="regCopyesAsync">
        <script lang="JavaScript"><![CDATA[importClass(Packages.ru.intertrust.cmj.af.exceptions.AFDaoBadParameterException);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.TunableObjectREST);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.TunableObjectREST.Resource);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.TunableOperation);
importClass(Packages.ru.intertrust.cmj.tunable.object.AnyTunableObject);
importClass(Packages.ru.intertrust.cmj.tunable.object.TunableObjectApplication);
importClass(Packages.ru.intertrust.cmj.tunable.object.TunableObjectApplication.ClientContextKey);
importClass(Packages.ru.intertrust.cmj.tunable.object.common.TunableObjectHelper);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.OperationJScriptREST);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.action.OperationJScriptREST.ReturnParamsResource);
importClass(Packages.ru.intertrust.cmj.af.version.VersionApplication);
importClass(Packages.ru.intertrust.cmj.dp.DPApplication);
importPackage(Packages.ru.intertrust.cmj.af.utils);
importPackage(Packages.ru.intertrust.cmj.af.tuning.impl);
importPackage(Packages.ru.intertrust.cmj.af.tuning);
importPackage(Packages.ru.intertrust.cmj.rest.tuning);
importPackage(Packages.java.util);
importPackage(Packages.java.lang);
importClass(Packages.ru.intertrust.cmj.af.core.AFSession);
importClass(Packages.ru.intertrust.cmj.af.tuning.TuningApplication);
importClass(Packages.ru.intertrust.cmj.rest.version.VersionCardResource);
importClass(Packages.ru.intertrust.cmj.rest.core.ExtendedResourceReference);
importClass(Packages.ru.intertrust.cmj.rest.core.ReferenceFactory);
importClass(Packages.ru.intertrust.cmj.rest.tuning.TuningHelper);
importClass(Packages.ru.intertrust.cmj.tunable.object.history.TunableHistoryHelper);
importClass(Packages.ru.intertrust.cmj.af.history.HasHistory);
importClass(Packages.ru.intertrust.cmj.af.history.FieldBase);

importClass(Packages.ru.intertrust.cmj.af.core.AFObject);
importClass(Packages.ru.intertrust.cmj.dp.DPM);
importClass(Packages.ru.intertrust.cmj.dp.DPMAdvInput);
importClass(Packages.ru.intertrust.cmj.dp.DPMContracts);
importClass(Packages.ru.intertrust.cmj.rest.misc.PermitHelper);
importClass(Packages.ru.intertrust.cmj.rest.bf.BFHelper);
importClass(Packages.ru.intertrust.cmj.rest.rkk.CopyRkkAction);
importClass(Packages.ru.intertrust.cmj.rest.rkk.RkkResource);
importClass(Packages.ru.intertrust.cmj.dp.operations.DPOperations);
importClass(Packages.ru.intertrust.cmj.dp.fdnd.FDSharedToolsD);
importClass(Packages.ru.intertrust.cmj.af.core.AFCMDomino);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.processes.service.MonitorProcessingService);
importClass(Packages.ru.intertrust.cmj.rest.tunable.object.processes.service.MonitorProcessingServiceImpl);
importClass(Packages.ru.intertrust.cmj.tunable.object.processes.IProcessMonitor);
importClass(Packages.ru.intertrust.cmj.rest.core.ResourceLink);
importClass(Packages.ru.intertrust.cmj.af.utils.BeansUtils);
importClass(Packages.ru.intertrust.cmj.af.so.SOApplication);

importClass(Packages.java.lang.System);

function processAsync(monitorId) {
	var monitorService = MonitorProcessingServiceImpl.get();
	var paramsResource = monitorService.getData(monitorId);
    process_dialog1(monitorId);
}


/**
 * Обработка первого пакета данных с клиента.
 * @param paramsResource
 * @return ресурс первого диалога сценария
 */
function process_dialog1(monitorId) {
	var monitorService = MonitorProcessingServiceImpl.get();
	var paramsResource = monitorService.getData(monitorId);

	    var appTNObject = AFSession.get().getApplication(TunableObjectApplication.class);
    var id = paramsResource.tuning().getValues().get("selectIds").getValues().get(0).getValue();
	var newids = new ArrayList();
    var appdp = AFSession.get().getApplication(DPApplication.class);
    var obj = appdp.getEntityByUNID(id);
    var count = TunableObjectHelper.getAFInstanceValue(paramsResource.tuning().getValues().get("count"));
	var service = BeansUtils.getBean("BarcodeGenerationService");
	var user = AFSession.get().currentUser().getBeard();
	var barcode = "";

    
	for (var i = 0; i < count; i++) {
		barcode = "";
	    var source = BFHelper.get(id);
		var rkk = source.composeRKKAsCopy().getRKK();
		source.copyTo(rkk);
	
		rkk.content().getFileItems().clear();
        rkk.content().setRichText(null);
		rkk.content().specification().setExemplarsCount("");
		rkk.content().specification().setExemplarsPagesCount("");
		rkk.content().specification().setAppendixesCount("");
		rkk.content().specification().setAppendixesPagesCount("");
		rkk.setSecurityStamp(source.getSecurityStamp());
		TunableObjectHelper.putAFInstanceValue(rkk.tuning(), "barCode", "")
	
		rkk.setLinkAccessDisabled(source.isLinkAccessDisabled());
	    rkk.control().setControlled(source.control().isControlled());
        rkk.control().setControllersExt(source.control().getControllers());
        rkk.control().setDeadline(source.control().getDeadline());
        rkk.control().setDeadlineExt(source.control().getDeadline());
        rkk.control().setExecutionExt(source.control().execution());
		rkk.registration().saveWithRegistration();

		var document = AFCMDomino.getDocByUNID(rkk.getUNID());
		barcode = service.generate(document, user);

		TunableObjectHelper.putAFInstanceValue(rkk.tuning(), "barCode", barcode);

		rkk.save();

		newids.add(rkk.getUNID())
		monitorService.updateProgress(monitorId, count, i+1);   //актуализируем прогресс для пользователя
	}
	
	//новый диалог с вопросом о штрихкодах
	var message = appTNObject.composeDialog("CreateCopyBarcodeDialog", null, null, null); //AnyTunableObject
	TunableObjectHelper.putAFInstanceValue(message.tuning(), "messageText", "Распечатать штрихкоды для созданных документов?");
	TunableObjectHelper.putAFInstanceValue(message.tuning(), "selectIds", newids);
	TunableObjectHelper.putAFInstanceValue(message, "counter", "answer2");

	var resource = TunableObjectREST.Resource.create(message);
	
	//ссылка на следующий обработчик. Он будет уже синхронный для того, чтобы запустить процесс печати отчёта
	resource.link.add(new ResourceLink(OperationJScriptREST.OperationReference.REL, new OperationJScriptREST.OperationReference("regCopyesPrintReport", monitorId)));

	var params = new HashMap(); //Map<String, String>
    params.put("ids", id);
	monitorService.updateByHandler(monitorId, IProcessMonitor.Command.SHOW_DIALOG, "Входящие РКК созданы и зарегистрированы", resource, params);

}
  • Создать схему диалога

  • Создать форму диалога

  • Создать handler (JS-Обработчик операций)

  • Создать схему кнопок для подключения в представление

  • Создать форму и в RootMenu создать button и подключить к нему handler

  • Подключить форму к дескриптору