Nano Hash - криптовалюты, майнинг, программирование

Как вы накапливаете значения в цикле ForEach в Mule?

У меня есть следующий вывод json:

{
  "results": [
    {
      "ID": "1",
      "ImageID": "2",
      "Name": "Test1",
      "Owner": "sysadmin",
      "Author": "sysadmin",
      "Creator": "sysadmin"
	},
	{
      "ID": "2",
      "ImageID": "23",
      "Name": "Test2",
      "Owner": "sysadmin",
      "Author": "sysadmin",
      "Creator": "sysadmin"
	}
  ]
}

Для каждого идентификатора в приведенном выше ответе мне нужно вызвать идентификатор передачи службы отдыха в качестве параметра, и служба отдыха отправит мне ответ. Мне нужно объединить весь вывод в один ответ json в mule. Я пробовал использовать для каждого и более богатого, но не смог его построить. Ниже приведен код, который я использую.

 <foreach doc:name="For Each Loop">
  <logger level="INFO" message="#[payload]" doc:name="Logger" category="INFO"/>
            <json:json-to-object-transformer doc:name="JSON to Object"/>
   <enricher doc:name="Message Enricher">
                <http:request config-ref="SAM" path="/abc/#[payload.ID]" method="GET" doc:name="HTTP"/>
<enrich target="#[flowVars.ID]" source="#[payload[0].ID]"/>
 </enricher>
 <logger level="INFO" message="#[flowVars.ID]" doc:name="Logger" />
 <expression-component doc:name="Expression"><![CDATA[payload.ID = flowVars.ID;    ]]></expression-component> 
 </foreach>

Пожалуйста, помогите мне исправить это !!

Спасибо


Ответы:


1

Вам нужно инициализировать пустой массив перед циклом for-each и добавить к этому массиву внутри for-each:

<set-variable variableName="idList" value="#[[]]" doc:name="Variable - Init idList"/>
<foreach doc:name="For Each Loop">
  <logger level="INFO" message="#[payload]" doc:name="Logger" category="INFO"/>
  <json:json-to-object-transformer doc:name="JSON to Object"/>
  <enricher doc:name="Message Enricher">
    <http:request config-ref="SAM" path="/abc/#[payload.ID]" method="GET" doc:name="HTTP"/>
    <enrich target="#[flowVars.ID]" source="#[payload[0].ID]"/>
  </enricher>
  <logger level="INFO" message="#[flowVars.ID]" doc:name="Logger" />
  <expression-component doc:name="Expression"><![CDATA[flowVars.idList.add(flowVars.ID);]]></expression-component> 
</foreach>

Я освещаю эту тему в этом видео.

26.08.2018

2

Спасибо, Джерни !!

Я заставил его работать, выполнив следующие действия:

<set-variable variableName="outputList" value="#[new java.util.ArrayList()]" doc:name="SetEmptyArray"/>
 <foreach collection="json:packshots" doc:name="ForEachDocument">
            <set-variable variableName="docName" value="#[json:Name]" doc:name="docName"/>
            <http:request config-ref="AH_DAM_API_Configuration" path="${ah.dam.api.get.renditions.path}#[json:Name]" method="GET" doc:name="InvokeAHDamService"/>
            <set-payload value="#[xpath3('//*:service/*:document',payload,'NODE')]" doc:name="fetchRenditionInfo"/>
     <expression-transformer expression="#[flowVars.outputList.add(payload)]" doc:name="AppendResponseToArray"/>
 </foreach>

26.08.2018

3

Я использовал из saveOutput для переменной массива.

30.07.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..