Как обрабатывать ответ более 4000 символов с помощью внешней задачи camunda - PullRequest
1 голос
/ 07 мая 2020

При использовании функции внешней задачи, предоставляемой camunda, я сталкиваюсь с проблемой, если ответ превышает 4 КБ символов. Я использую этот модуль для реализации функции внешней задачи

https://www.npmjs.com/package/camunda-external-task-client-js

Исключение: -

   NULL,
      3,
      NULL,
      NULL
    ) was aborted.  Call getNextException to see the cause.
org.postgresql.util.PSQLException: **ERROR: value too long for type character varying(4000)**
'. Flush summary:
 [
  INSERT HistoricVariableInstanceEntity[dd43fad7-904e-11ea-bb50-0242ac1f030a]
  INSERT HistoricJobLogEventEntity[dd4421ea-904e-11ea-bb50-0242ac1f030a]
  INSERT HistoricVariableUpdateEventEntity[dd3be481-904e-11ea-bb50-0242ac1f030a]
  INSERT HistoricVariableUpdateEventEntity[dd3c32a4-904e-11ea-bb50-0242ac1f030a]
  INSERT HistoricVariableUpdateEventEntity[dd43fad8-904e-11ea-bb50-0242ac1f030a]
  INSERT HistoricExternalTaskLogEntity[dd3ccee6-904e-11ea-bb50-0242ac1f030a]
  INSERT ByteArrayEntity[dd3c32a2-904e-11ea-bb50-0242ac1f030a]
  INSERT ByteArrayEntity[dd3c32a3-904e-11ea-bb50-0242ac1f030a]
  INSERT ByteArrayEntity[dd3ca7d5-904e-11ea-bb50-0242ac1f030a]
  INSERT VariableInstanceEntity[dd43fad7-904e-11ea-bb50-0242ac1f030a]
  INSERT MessageEntity[dd4421e9-904e-11ea-bb50-0242ac1f030a]
  DELETE ExternalTaskEntity[cadab10c-904e-11ea-bb50-0242ac1f030a]
  UPDATE VariableInstanceEntity[c82b4842-904e-11ea-bb50-0242ac1f030a]
  UPDATE VariableInstanceEntity[c82b4845-904e-11ea-bb50-0242ac1f030a]
  DELETE VariableInstanceEntity[cad273a0-904e-11ea-bb50-0242ac1f030a]
  DELETE VariableInstanceEntity[cad273a2-904e-11ea-bb50-0242ac1f030a]
  DELETE VariableInstanceEntity[cad273a4-904e-11ea-bb50-0242ac1f030a]

1 Ответ

1 голос
/ 12 мая 2020

Это связано с ограничением переменных Camunda в 4000 символов. Ваш процесс экземпляра в Camunda должен обслуживать ответ в любом формате, но не как строку, чтобы отсортировать его. Несколько предложений:

  1. Оберните ответ в объект (а не в строку). Таким образом, он сохраняется в базе данных в виде большого двоичного объекта.
  2. Используйте Camunda Spin и обработайте его как JSON https://docs.camunda.org/manual/7.12/reference/spin/
...