Camunda8 task with only output

In camunda7, i use Task which only define output.

I converted it using backend-diagram-converter-cli-0.9.0.jar.
But the output variable is not set in the process instance
(variable: os_major)

example:
os_major = ${ prov_os_major }

    <bpmn:task id="BusinessRuleTask_ExplodePuissance" name="test">
      <bpmn:extensionElements>
        <camunda:inputOutput>
          <camunda:outputParameter name="os_major">${ prov_os_major }
${ in</camunda:outputParameter>
        </camunda:inputOutput>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0mjugq3</bpmn:incoming>
      <bpmn:outgoing>Flow_118u7fw</bpmn:outgoing>
    </bpmn:task>

When i translate it

  <bpmn:task completionQuantity="1" id="BusinessRuleTask_ExplodePuissance" isForCompensation="false" name="test" startQuantity="1">
      <bpmn:extensionElements>
        <conversion:message severity="REVIEW">Element 'outputParameter' was transformed. Parameter 'os_major': Please review transformed expression: '${ prov_os_major }
${ in' -&gt; '=prov_os_major + in'.</conversion:message>
        <zeebe:ioMapping>
          <zeebe:output source="=**prov_os_major + in" t**arget="os_major"/>
        </zeebe:ioMapping>
      </bpmn:extensionElements>
      <bpmn:incoming>Flow_0mjugq3</bpmn:incoming>
      <bpmn:outgoing>Flow_118u7fw</bpmn:outgoing>
    </bpmn:task>

which can not be deployed (with a python script)

   raise _create_rpc_error(
grpc.aio._call.AioRpcError: <AioRpcError of RPC that terminated with:
        status = StatusCode.INVALID_ARGUMENT
        details = "Command 'CREATE' rejected with code 'INVALID_ARGUMENT': Expected to deploy new resources, but encountered the following errors:
'converted-c8-e.bpmn': - Element: BusinessRuleTask_ExplodePuissance > extensionElements > ioMapping > output
    - ERROR: failed to parse expression 'prov_os_major + in': Expected (binaryComparison | between | instanceOf | in | "and" | "or" | end-of-input):1:15, found "+ in"
"
        debug_error_string = "UNKNOWN:Error received from peer  {grpc_message:"Command \'CREATE\' rejected with code \'INVALID_ARGUMENT\': Expected to deploy new resources, but encountered the following errors:\n\'converted-c8-e.bpmn\': - Element: BusinessRuleTask_ExplodePuissance > extensionElements > ioMapping > output\n    - ERROR: failed to parse expression \'prov_os_major + in\': Expected (binaryComparison | between | instanceOf | in | \"and\" | \"or\" | end-of-input):1:15, found \"+ in\"\n", grpc_status:3, created_time:"2024-07-25T13:44:07.790534235+02:00"}"
>```

I have to fix it manualy, and it deploy ok and works as expected:

          <zeebe:output source="=**prov_os_major + in"** target="os_major"/>
          <zeebe:output source="=**prov_os_major"** target="os_major"/>

Hi @faroni - I don’t have any personal experience with this conversion tool, but the output XML includes a warning from the convertor that you need to review. The line starting with <conversion:message... contains what you need to review for accuracy, and everything between the **'s needs to be reviewed. =**prov_os_major +in is not a valid FEEL expression, so that is where the error is happening.

ok. the conversion tool convert “simple” expression like
${ var1 }
${ not var_bool }

And un Camunda8 a simple Task can not have input nor output …

@faroni - if you are just manipulating data, I would use a script task. But I’m not sure what your original task did in the model, so I can’t help much beyond that.

i do not want to use a Script Task as the script engine is incompatible between 7 & 8

@faroni - you can use FEEL inside a script task to manipulate the data in variables without calling any external job workers. But again, I have no context for what this task does, so I can’t help beyond this without more detail.