SSJS - ошибка при доступе к полю даты
В SSJS я использую doc.getDocument(). GetItemValue(dateFld)[0] для доступа к значению поля даты.
Для одного и только одного конкретного документа я получаю "Ошибка при доступе к индексируемому свойству #'0' в классе ojbect java.util.Vecotr Индекс массива вне диапазона: 0
Я проверил поле в этом документе, и оно имеет значение даты и времени; Формат ничем не отличается от документов, которые работают правильно. Я даже запустил код SSJS, который сделал typeof для значения поля и измерил его размер: это вектор, а его размер равен 1.
Я попытался сбросить значение поля в документе. Я попытался удалить поле, а затем сбросить его, но безрезультатно.
Это второй раз, когда я сталкиваюсь с этой проблемой, связанной с полем даты. У кого-нибудь есть предложения?
2 ответа
Вы получаете эту ошибку, потому что элемент не находится в внутреннем документе. Попробуйте использовать
doc.getDocument().getItemValueString("...")
или любой другой метод, который будет возвращать "реальное" значение вместо дерьма Vector.
Кстати: не используйте стиль [x] для доступа к значению Vectored - используйте вместо него.elementAt(x) при использовании методов возврата Vector:-)
Я бы добавил следующее вокруг вашего кода, чтобы назначить значение по умолчанию, если поле даты не выходит
if(doc.getDocument().hasItem(dateFld)){
//You code when the document exists
}else{
//Assign default value
}