Я работаю над задачей, которая требует от меня экспортировать все активы и все их значения атрибутов в файл CSV. Я знаю, что есть возможность экспортировать в Excel, но у этого есть свои проблемы, и мы решили дать шанс API.
Проблема, с которой я столкнулся, заключается в том, что, хотя я могу получить все ресурсы определенного c введите с кодом
IServices services = new Services(connector);
IAssetType requestType = services.getMeta().getAssetType("Request");
Query query = new Query(requestType);
не совсем понятно, как вернуть все атрибуты ресурса. Существует getAttributes()
для Asset
объекта
QueryResult result = services.retrieve(query);
for (Asset asset : result.getAssets()) {
Map<String, Attribute> attributes = asset.getAttributes();
System.out.println(attributes.toString());
}
, но он не возвращает атрибут, если он явно не добавлен в запрос, например.
…
Query query = new Query(requestType);
IAttributeDefinition nameAttribute = requestType.getAttributeDefinition("Name");
IAttributeDefinition numberAttribute = requestType.getAttributeDefinition("Number");
query.getSelection().add(nameAttribute);
query.getSelection().add(numberAttribute);
QueryResult result = services.retrieve(query);
…
что не имеет смысла для меня, так как я могу даже не знать все возможные атрибуты объекта!
Мне кажется, getAttributes()
метод может не подходить для этой цели, но что еще использовать тогда? Любые идеи о том, как я могу собрать нужные мне данные?