One fine day, after all our queries were created, working well and being tested in quality, a new requirement arose: allow all BEx queries to be accessible to Business Objects, if they aren’t already.
Now, one may want to open each BEx query one by one and check if the “Allow External Access to this Query” flag and set it if isn’t set. Yet, it seems a tad cumbersome (depending on the number of queries, you might want to change the “tad” word). Especially when you consider that some (hopefully many) queries may already have the checkbox set.
So on seeing this new requirement, I decided to save my time and somehow get the list of only those queries which don’t have that checkbox set. Unfortunately, BEx offers no way to see property of multiple queries at a glance – at least, no way that I know/knew of. This sounds like the kind of information it should be easy to find out, but it really isn’t.
If Obi-wan knew SAP BW, he may well have said “Use the RS tables, Luke!”
In the course of rummaging through the dense forest of the RS* tables, happened to stumble upon RSZELTPROP.
In theory, looking at this table should tell you the properties of the query. And it does in practice as well – turns out there’s this field called RFCSUPPORT which is described as “Query: RFC Publishing as VirtualProvider (yes/no)” in SE11, and which tells you if it is enabled for external access.
So we need to find out how many of our queries are enabled. Our first port of call would unsurprisingly be RSZELTDIR, which holds the details of all query elements. So you give your Query Technical Names in the MAPNAME field and A in the OBJVERS field and get the ELTUID.
At this point, it might be useful to check that all records have ‘REP’ in the DEFTP column. This denotes that the records pertain to Reports and not, say CKFs or filters.
Now take this bunch of ELTUIDs (the first column) and search for them in the RSZELTPROP table.
To find out which queries are not enabled, just perform a search for the records having a blank value for the RFCSUPPORT field.
Great, so now all you need to do is pick up the ELTUIDs having a blank value in RFCSUPPORT field, and search for them in RSZELTDIR and you’ll get the query names.
Some other possibly interesting questions you can find out from these tables:
- Which queries have suppression for repeated characteristic values? (Field: NOMULTTXT)
- Which queries have a key date? (KEYDATEFLAG and KEYDATE)
- Which queries have zeros displayed with unit, without unit, as space and as a string? (ZEROPRSNT, ZEROSTRING)