Netsuite - автоматизация создания депозита

Я только что создал Suitelet для автоматизации приложения депозита для продаж за наличные, где пользователи будут загружать список записей продаж за наличные в файле CSV, а сценарий автоматически применяет депозит при продажах за наличные и создает запись депозита, однако я понял, что просто в записи о депозите было слишком много записей о продажах за наличные (> 3000), чтобы просмотреть список и применить их. Это вызывает тайм-аут suitescript. Я также не могу установить фильтр диапазона дат для списка записей. Есть ли способы добиться этого, не нарушая лимит?


person qwertyuser    schedule 30.10.2015    source источник


Ответы (1)


Одно из возможных решений:

Чтобы не усложнять:

1) В первом запросе просто загрузите файл в картотеку и верните успешный ответ.

2) Затем вы отправляете последующие регулярные вызовы AJAX своему пакету для обработки 'N' строк, выбираете жизнеспособный номер, желательно выполнять следующий вызов только после того, как первый будет обработан. В этих запросах вы должны добавить параметры URL, такие как имя_файла для обработки и номер начальной / конечной строки файла CSV.

Если вы хотите, очевидно, вы можете оптимизировать производительность, отправив несколько одновременных последующих запросов, поскольку netsuite позволяет выполнять определенное количество одновременных запросов на сеанс пользователя.

В своем костюме вы можете использовать request.getParameter(URL_PARAM_NAME) для чтения значения параметра URL.

person prasun    schedule 30.10.2015
comment
По вызову AJAX, я полагаю, вы предлагаете использовать nlapiRequestURL? Проблема в том, что для завершения всей операции потребуется некоторое время. Я сейчас попробовал запланированный сценарий, и это тоже занимает 20 минут. Если бы я использовал люкс, он может истечь - person qwertyuser; 01.11.2015
comment
Поэтому я предложил указать в запросе начальную и конечную строки. Каждый вызов набора создает только несколько (N) строк. Если вы отправите несколько ajax параллельно, файл будет обрабатываться параллельно. Существует ограничение на количество параллельных запросов, вероятно, 50 для набора - person prasun; 01.11.2015
comment
например: допустим, у вас есть 100 записей для создания, вы должны запустить 10 nlapiRequestURL () или AJAX для 1-10, 11-20, 21-30 ... 91-100 и одну для создания файла в начале, это оптимизирует время и срок исполнения как - person prasun; 01.11.2015
comment
Я понимаю, откуда вы, но это больше касается времени, необходимого для завершения операции, меньше - блока управления. Если бы я использовал пакет и также разбил его на несколько запросов, это все равно заняло бы 20 или более минут. К тому времени время ожидания сценария определенно истечет. - person qwertyuser; 01.11.2015
comment
Я так не думаю, он должен истекать, если N очень мало, нет ограничений на то, как долго может работать клиентский скрипт, но N должно быть низким, чтобы время ответа отдельного серверного пакета было низким и не истекло время ожидания - person prasun; 01.11.2015