Hi,
we have issue with soap initiated long running tasks in erp. for example let see 2 use cases
- Send soap request from mobile client - run process which running avg 90 sec
- Send soap request from mobile client - starts composite service creating/update records eg. IM with 100 lines then an last step complete it. (duration let say 90 sec)
because idempiere running behind proxy (haproxy also we using aws api gateway) - there is always timeout because security and other reasons.
while backround tasks (process/create composite) duration is more then timeout treshold, then we lost result/response - controll over backgraound task status.
in case 1. we implemented a solution - just simple add runasjob as web service parameter - so when process start then we return process id. we create a processstatus soap endpoint and ask periodically about the status. When processing marked 'N', then job is done and we can finish async js task and stop eg.. busy box and mark local record as processed (eg cant send multiple times)
in case 2. it is not possible make approach while no audit trail about action (composite create record) - what happening - our mobile client start create new document api gw timeout, we lost connection in client side and our client has ad1. no response - eg which document no was created ad2. has no chance to know does doc creation was successful or rolled-back. (eg. mobile app local record has flag sent y/n - we cant mark y so left n, user has hanged up process later try it again - so wrong.)
my thoughts: we can implement a new object webservice responses or webservice audit_trail, where we can trail all soap requests and their respones. This layer must be enough/scalable/customisable/configurable which details about background process results, statuses, errors, response codes must handle etc.
please share your ideas how to handle above issue.
probably we can sponsoring part of development costs.
any ideas or solution we not recognise ?
norbert