Page tree
Skip to end of metadata
Go to start of metadata

Имеется возможность применить свою реализацию для формирования каких-либо выгружаемых файлов. При старте выгрузки будет сформировано синхронное событие ru.bitel.bgbilling.modules.sorm.server.event.SormUploadEvent.

В динамическом коде можно заменить один или несколько файлов, можно добавить один или несколько файлов к выгрузке.

Пример
public class CustomUpload
    extends EventScriptBase<SormUploadEvent>
{
	 @Override
    public void onEvent( SormUploadEvent event, Setup setup, ConnectionSet set )
    throws Exception
    {
        SormProject sormProject = event.getSormProject();

        CustomUploadSorm customCustomUploadSorm = new CustomUploadSorm( sormProject, true );

        event.setUploadVersion( customCustomUploadSorm );
    }

    /**
     * Класс-реализация пользовательской выгрузки СОРМ.
     */
    static class CustomUploadSorm
        extends Upload
    {
        SormProject sormProject;

        public CustomUploadSorm( SormProject sormProject )
        {
			//true - если нужна полная выгрузка, false - если выгрузка будет инкрементальной. Т.е. будут выгружены только новые и изменённые с последней выгрузки договоры, и данные к ним.
            super( sormProject, true );
            this.sormProject = sormProject;
        }

        @Override
        public Path abonents()
        {
            return null;
        }

        @Override
        public Path abonentsAddresses()
        {
            return null;
        }

        @Override
        public Path abonentLogins()
        {
            return null;
        }

        @Override
        public Path services()
        {
            return null;
        }

        @Override
        public Path abonentServices()
        {
            return null;
        }

        @Override
        public Path ipNumbering()
        {
            return null;
        }

        @Override
        public Path abonentsIpNumbering()
        {
            return null;
        }

        @Override
        public Path switches()
        {
            return null;
        }

        @Override
        public Path gateways()
        {
            return null;
        }

        @Override
        public Path bunches()
        {
            return null;
        }

        @Override
        public Path phoneNumbering()
        {
            return null;
        }

        @Override
        public Path phoneNumberingAbonents()
        {
            return null;
        }

        @Override
        public Path documentTypes()
        {
            return null;
        }

        @Override
        public Path paymentTypes()
        {
            return null;
        }

        @Override
        public Path abonentsPayments()
        {
            return null;
        }

        @Override
        public Path operatorInfo()
        {
            return null;
        }
		
		/**
		 * key - путь на фтп, куда нужно положить файл, или null, если нужно оставить стандартный путь или указанный в модуле
		 * value - сам файл	
		 *
		 */
		@Override
        public Map<String, Path> getOtherFiles()
        {
            return null;
        }
    }

Метод getOtherFiles() может быть использован для формирования и выгрузки любых необходимых файлов.

Допускается реализация только тех фалов, которые необходимы. Если для какого-то файла не была найдена переопределённая пользовательская реализация, то при выгрузке модулем будет взята стандартная реализация


  • No labels