2016-11-24 5 views
0

Я могу посмотреть список продуктов, но я не могу разобраться с ними индивидуально. Является ли объект возвращенным не нормальным списком ливней?Как использовать потоп для анализа списка продуктов в Zoho Sales Order (или PO, quote, invoice и т. Д.)?

Это работает:

salesorder = zoho.crm.getRecordById("Salesorders",input.so_id.toLong()); 
lineitems = salesorder.get("product"); 

Но ни один из следующих строк будет сохранять (Zoho не напрягает отображения сообщения об ошибке):

salesorder = zoho.crm.getRecordById("Salesorders",input.so_id.toLong()); 
lineitems = salesorder.get("product"); 
liCount = lineitems.size(); 
for each lineitem in lineitems {} 

Есть ли другой путь к петле через позиций в таких типах модулей?

+0

Когда я посылаю объект SalesOrder в теле письма, атрибут продукта заключен в квадратных скобках. Означает ли это, что это список или что-то еще? ... «Состояние»: «Доставлено», «Продукт»: «[{Идентификатор продукта = 1663763000000192212, Скидка = 0.0 ... – carpiediem

ответ

1

Вы можете зациклить элементы в порядке Zoho или счете-фактуре, как так:

items = invoice.get("product").toJSONList(); 
for each item in items 
{ 
    itemMap = item.toMap(); 
    name = itemMap.get("Product Name"); 
} 
+0

Это работает? У меня нет доступа к Zoho для проверки. Вы уверены, что это не приводит к созданию плоского массива вместо иерархического объекта JSON? – carpiediem

+1

Это работает. Недавно он был реализован, но он не является иерархическим. Вот почему вы должны использовать итерированный элемент, используя метод .toMap(). – Corgalore

0

Это нехороший вариант, но он, похоже, работает. Теперь мне просто нужно выяснить, как использовать потоп, чтобы обновлять позиции новыми данными.

salesorder = zoho.crm.getRecordById("Salesorders",input.so_id.toLong()); 
lineitems=salesorder.get("product"); 
li_list=lineitems.subString(1,(lineitems.length() - 1)).toList("},{"); 
for each rec in li_list 
{ 
    lineitem="{" + rec + "}".toMap(); 
    product_id=lineitem.get("Product Id"); 
}