I’ve met a wired problem in wm service.
The varible changed back when doing the cache service.
Below, it’s the program logic.
get id(adapter service : get sequence number: select seq.nextVal from dual)
invoke service: convertCode ( this is a cache service, id will not be mapped to this service )
I’m trying to run this service step by step and reset the cache at the beginning.
The wired thing is :
in the first loop , let’s say id is 10, everything works fine. But when go to the second loop, id=11, after the convertCode service, id was changed back to 10. In the next 8 loops, every time after the convertCode service, the id was changed to 10.
And there are three methods which can avoid this situation:
1: call convertCode in transformer
2: assign the scope in properties tab.
3: do not use cache
The question is :
1: if i copy convertCode to another service, everything works fine. if i use any other cache service, everything works fine. So is there any problem with my convertCode service? I’ve no idea with this situation.
2: in developer users guide. it says: wm will use the cache results if the input totally matched. And in wm 6.x (we are using 6.1), the only difference between normally service invocation and transformer invocation is the input and output.
In normal service invocation, the whole pipeline value will be the service input but in transformer, only the mapped values work. So the question is, the whole pipeline variables and the mapped variable, which will be the condition to use the cached results when normally invoke a cached service.
3: is there anyway i can check the cached values?
Any comments are highly appreciated.
Thanks in advance.