How to set job state?

Hi, everyone
I met a problem about set transaction status. Because of some special business requirement, I have no data to add to queue, and I just new a queue item assign to the transaction Item when get transaction data.

At the same time, it is also because there is no queue item on OC, so I set the transaction item to nothing when I set transaction.

And then, I found even if I catch business rule Exception or system exception in the process part, and then enter the set transaction, because the transaction item is nothing I have set ,the job will still be displayed as successful on OC

How can I change the job status?

If I add a virtual data to OC queue at init part, and get it at get transaction part, can this operation solve this problem?