Логика действий :(

  • Автор темы Автор темы stanar
  • Дата начала Дата начала

stanar

Client
Регистрация
19.12.2015
Сообщения
315
Реакции
157
Баллы
43
Доброго вечера, дамы и господа. Помогите, не хватает мне знаний.
Работаю с API одного программного продукта по учету рабочего времени в общепите. По API дает возможность вытягивать данные, которые довольно сложно вытянуть через его родные отчеты. К примеру. Есть 15 кафе. На них работают 600 сотрудников. У каждого есть должность. База данных построена так, что в каждом справочнике его элементу присваивается код. И ответы на запросы приходят с кодом, а не с наименованием элемента.

К примеру. Хочу я узнать, какие сотрудники у нас работают. Приходит ответ ФИО текстом - Иванов Иван Иванович, должность "KJH-sdfasdf-sdfadf-sdf", кафе "sdfsd-fsdf-gsdg-sdf".
Ок. Берем справочник кафе в файл и поиском находим код кафе , затем по коду вытягиваем его название текстом. Типа
Кафе березка dfsdf-sdfsdf-sdfsd-fsdf
Кафе ракета sdfsdf-sdfsdgsd-sdfsdf-sdf
................................
Кафе Кукушка sdfsd-fsdf-gsdg-sdf

Так же поступаем со справочником должностей. Итого получаем Иванов Иван Иванович Кафе Кукушка Слесарь.

Вопрос - если этих сотрудников 600, то получается как-то очень муторно брать из текстового файла строку, находить или не находить там значение и вытягивать его. Может как-то попроще есть вариант?
 
Проще было бы если разработчики апи предоставили вместо кодов, связанные названия. А в чем сейчас сложность? Это же зенка делает а не вы руками.
 
Проще было бы если разработчики апи предоставили вместо кодов, связанные названия. А в чем сейчас сложность? Это же зенка делает а не вы руками.
Думаю у разработчиков были свои причины. В любом случае- что имеем то имеем (
Сложность в том, что нужны оперативные данные. Большое количество. А вся та кучная куча, которую и нагородил из списков, тормозит(
 
Приведите пример хоть что за список. Как всё выглядит. Если там всего 15 кафе и 600 сотрудников, то не думаю что и 600 должностей будет, максимум 10-15.
Сделайте себе небольшую таблицу соответствий и получайте через неё.
 
Приведите пример хоть что за список. Как всё выглядит. Если там всего 15 кафе и 600 сотрудников, то не думаю что и 600 должностей будет, максимум 10-15.
Сделайте себе небольшую таблицу соответствий и получайте через неё.
Должностей около сотни. Кроме сотрудников, кафе, должностей есть еще всякие виды явок, роли сотрудников и еще штук десять сущностей, которые кодируются. Таблица соответствий с каждым запуском будет новой - все меняется практически ежедневно.
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><employeeRoles><role><id>bf6812b7-2158-433a-b972-15440c8a9ea9</id><code>MR3</code><name>Cпециалист по связям с общественностью</name><paymentPerHour>0.000000000</paymentPerHour><scheduleType>FIXED</scheduleType><deleted>false</deleted></role><role><id>6b401745-f963-4bb1-971a-8ae08ebfb1c4</id><code>HR0</code><name>HR-директор</name><paymentPerHour>0.000000000</paymentPerHour><scheduleType>FIXED</scheduleType><deleted>false</deleted></role><role><id>817045bd-ebb2-4f97-ba20-e69b5df97ae9</id><code>IT0</code><name>IT-директор</name><paymentPerHour>0.000000000</paymentPerHour><scheduleType>FIXED</scheduleType><deleted>false</deleted></role><role><id>2d8cc1cf-ec4e-408c-9f5d-f9fcd090f801</id><code></code><name>А-фест</name><paymentPerHour>5.000000000</paymentPerHour><scheduleType>SESSION</scheduleType><deleted>false</deleted></role><role><id>8f681673-bb45-440e-91c8-9d98aacc058c</id><code>CANIM</code><name>Аниматор</name><paymentPerHour>0.000000000</paymentPerHour><scheduleType>SESSION</scheduleType><deleted>false</deleted></role><role><id>ce697f91-7453-4595-84b8-f351818d74cd</id>



И так далее. Глянул точно - 175 должностей(
И это самый лайтовый вариант еще. Получить выручку - это туева хуча кодов подразделений, типов оплаты, типов заказа, самих кафе
 
И где в вашем XML корневой элемент. Не думаю что в таком виде отдаёт
 
- 600 сотрудников в csv файле, у них приписаны коды в определенном поле.
- Регуляркой собираешь все эти коды в файл.
- В файл помещаешь справочники для расшифровки кода в виде таблицы (абракадабра|Нормальное название)
- Из справочника отсеиваешь лишние (что бы осталась расшифровка только для кодов которые встречаются среди 600 пользователей)
- Делаешь замену текста в csv файле пользователей. Заменяя коды на расшифрованное значение.
 
Если это ответ с API а он в XML формате то в чём ваша трудность. Я признаться так и не понял.
 
Если это ваш ответ API и он в XML формате то расспрашиваете и работаете дальше. Что и откуда вы дальше тянете я так и не понял.
Может только я не понял ?
 
Если это ответ с API а он в XML формате то в чём ваша трудность. Я признаться так и не понял.
Это один из тысячи элементов ОТВЕТА.
<id>b33b5e36-a5b1-9b52-0166-f6a44b56726b</id><employeeId>4ed66aa9-2f08-4c48-a429-91dc59aea86a</employeeId><roleId>ffbeef6a-28ba-b5f6-6435-51113bd71411</roleId><dateFrom>2018-08-16T00:00:00+03:00</dateFrom><comment>Сотрудник работал по подменной карте №000003255. Комментарий: .</comment><departmentId>cc36fea1-c2d1-4303-a19d-c254d69e905b</departmentId><departmentName>Кафе Кукушка</departmentName><personalDateFrom>2018-08-16T00:00:00+03:00</personalDateFrom><personalDateTo>2018-11-09T07:13:00+03:00</personalDateTo><created>2018-11-09T07:13:53.460+03:00</created>

Мне нужно в каждом из них заменить коды на текст. ID, EmployeeID, roleID и так далее - это все сторонние справочники по 300-500 элементов. Как их быстро подтянуть и заменить в этот ОТВЕТ?
 
это все сторонние справочники по 300-500 элементов/ В каком формате всё находится там.
 
Ну и в чём, собственно проблема то?
Не могу взять в толк. Зенка уже давно умеет парсить XML, практически, на автомате.
Сложно выдернуть все записи и создать единый справочник?
 
Ну и в чём, собственно проблема то?
Не могу взять в толк. Зенка уже давно умеет парсить XML, практически, на автомате.
Сложно выдернуть все записи и создать единый справочник?
ТС сам не знает чего хочет. У него вопрос: "как сделать проще", когда на самом деле нужно задаться вопросом: "зачем? и что конкретно не устраивает?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)