Natural and ACBX direct calls to Adabas

Hi, I need to be able to obtain Adabas FDT’s, read physical with multi-fetch, get & update database records, ALL using direct calls with ACBX to handle Adabas 8 features like LA and gt 32k record buffer size, and am having serious issues with building a prototype to prove that this is possible within our infrastructure.
Surfing around, current indications are that USR1043N is the recommended route over CMADA and CALL ‘ADABAS’ directly, but for the life of me, I cannot get my Natural prototype to use USR1043 with my ACBX data structures and return anything constructive.
Have been chatting with Wolfgang Winter on this topic, and he has confirmed that only command CL is possible thru USR1043 with ACBX. I’m gutted that I will not be able to build this particular system using Natural with direct calls to Adabas with the extensibility of using the ACBX & ABD’s to allow for gt 32k buffers, LA etc etc…Evidently the only way fwd with this particular build will be to use COBOL or Assembler with the direct Adabas calls that I require.
Why is this not available directly within Natural?
Any help or suggestions would be greatfully received!
Ta, Debs

Hi Debbie,

did you make any progress with your endeavours with ACBX ?

I need to implement / test this functionality also


Hi Trev, yup I got it working nicely in COBOL - it can’t be done in Natural at this time (or the forseeable future I’m told)

Hi Debbie,

thank you very much for the reply.

I am now going to expose my self terribly here,

If we cannot use it from Natural what the heck is it for then ?


That’s a good question Trev…!
I gather that until the demand for the functionality exists, it will not be developed - I did raise it as a request (use ACBX directly from within Natural, or thru a USR API) in Brainstorm, but have not heard anything since logging the request (Feature Request #01992).
Unfortunately my project couldn’t wait, so I had to go ahead and do the ACBX calls in COBOL.


use what from Natural ?

ACBX is an Adabas interface, so basically anyone can use it :wink:

Natural does use it, internally when accessing Adabas, but there is no USR* routine exposing ACBX.

Having written quite a number of ACBX calls in both C++ and Assembler myself I’d say for a good reason

Hi Wolfgang,
thankyou for commenting. Perhaps I have got hold of the wrong end of the stick. My background is as an Adabas/Natural DBA. So I, perhaps simplistically, thought that as ACBX seemed to be used to permit large buffers when making adabas calls that it would be a natural consequence that its use would be available to the Natural language which is used extensively to communicate with Adabas. Others have used it for Cobol …

So you questioned 'use what from Natural ’

My answer is use ACBX to make calls from natural programs to enhance the amount of data that can be handled. Sorry if I am being a bit thick here.



Natural will use ACBX to get around these size limitations, so if you issue your FIND, READ & co ACBX will be used transparently.

Using USR routines to issue ADABAS calls is an entirely different beast, and nothing you would do under “normal” circumstances, would you ?

Things like grabbing the FDT are VERY special use cases, but why would you want to resort to direct call programming for plain ADABAS access when there are NATURAL (sic!) verbs to do the job, with full transaction control, yada yada ?

Hi Wolfgang,

thanks that is great news. Where my query went astray was I saw an earlier message relating to ACBX and piggy backed my query off of it.

I have No wish to do direct calls [ natural will do it a lot better than me for certain].

I did not understand that Natural used ACBX seamlessly under the covers.

Thanks very much for explaining ; a great result because I don’t have to do anything : Natural does it all quite naturally for me ,