on 01-13-2016 12:48 AM
I have found a place in a layered product (which shall be nameless) where SAP uses a text table as a distinct values table for the non-text table which the text table supports.
This is as unspeakable a crime as I've ever seen committed inside an SAP product, and I'm wondering if anyone else has ever discovered the same kind of lazy and/or ignorant programming in an SAP product or layered product.
If so, I'd be curious to know where.
You tell me yours, and I'll tell you mine.
Like you said - "it's the cheap way". I don't recall seeing the same "design" (not that I looked though), but plenty of other "economy options" in SAP. Not everyone is Thomas Jung, I guess.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
A hot contestant for the Darwin Award of DDIC objects is a domain which is also used as an authorization object. The domain range consists of 1 character key alphabetical values with language dependent texts. So far OK...
But, the keys themselves are also language dependent in the implementation of the authority-check. So a specific value, for example C = Customer Returns, provides an access control in English to this type of materials, but in Spanish C provides access to move Consignment Stock. In Spanish the authorization for A (Almacen = warehouse) is in English A = All access), etc.
So, depending on your logon language the same role will provide different access and different system behaviour. Or, depending on what you want to do, just logon in Spanish or Swahili or whatever suites the domain range best.
Cheers,
Julius
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sorry for the mistake in assuming that translation of domain ranges and a text table are close enough within the DDIC mindset that they could be considered similar enough to be mentioned in the same thread. What the hell are they both doing on the selection screen of SE11 together? Lazy and ignorant programmers!
I will try to improve myself.
ps: so what you are saying is that the text is a key? Perhaps the intention was version management and change docs of the texts if they have some importance beyond just being a string of characters lines up next to each other?
Cheers,
Julius
Hi Julius
Table X is a config table with fields
x1 x2 x3
each x1 duplicates for many values of x3, and x2 is just a counter 1,2,3,4 etc.
So they have a table Y which has the different text strings for each distinct value of x1 in table X.
And they use table Y as a cheap way to get the distinct values of x1 in X. And not only that, they enforce this synchronization by defining a view in which every element of Y must have at least one element in X.
Bad bad business ...
But anyway, you never have to apologize to me for anything - we're just two guys communicating as best we can, and I didn't do a very good job of communicating the first time around ...
Best as always
djh
As we can see, only the lazy bones who do not play golf on Wednesday afternoons are left here. Just me, and you in your bunker in a deserted bird sanctuary in rural Oregon... 😉
Jokes aside - Coffee Corner suffered terribly under various regimes of points dictators and has been ruined from an innovation and (specially for you) provocative thought perspective.
I only happened to be here this month because someone from Oregon (co-incidence?) complained about me, so I checked the Coffee Corner for rants.
Cheers,
Julius
We posted at about the same time (I made myself a tea to consider the Oregon comment but concluded that you can handle the humour) and did not look back.
Yes, that is very nasty for the DB as well.
Are there APIs to this package or component? I suspect not...
That the view and F4 respects the selection shows that they put some thought into it. Even worse...
Or does SE54 do that "out of the box" when such constructs are created? That would indicate that there are more, but we do not notice them on the surface.
For me the definitions of the value ranges (or customizing entries) are still the least best thought out problem. I often get the impression that it is partially possible but a waste of time to use anyway.
Even in the core Component Finance you can group Vendor, Customer and General Ledger accounts if you want to. It is just maintaining master data for the sake of master data, because if you want to restrict reporting then you must modify the logical database as well. D'oh...
Ok... so we understand your construct better now without mentioning the object name. We can ping a few gurus from the DDIC area to chime in... but I suspect that from an efficiency perspective you are going to be asked to play your cards... 🙂
Cheers,
Julius
Well now that you agree that it's not the right way to do business, I don't mind playing my cards.
The tables are T439C and T439B, but the offending transaction which uses the view on these tables is /isdfps/s_puwnr (a transaction in the layered ISDFPS product.) The view is V_T439C.
If you have a mismatch between the C and B table, i.e. if you have historical text entries in T439B that don't correspond to any entries currently in T439C, then the /isdfps/s_puwnr complains because the V_T439C view is no longer consistent.
And this is total BS - you should never have to delete text entries when you delete their support - for all anyone cares, unsupported text entries can and should be able to stay out there forever, for historical purposes ...
My allergy detectors alerted on ISDF but I read your post anyway. Vomited twice.
There are worse things than this in ISDF, and also in IS-U by-the-way.
Cheers,
Julius
ps: Quality checks definitely lack in registered namespaces. SAP has their own. Customers have their own. But the grey zone in between is horrid and no one feels responsible for it. But /ISDF/ is now SAP owned as far as I know. They also cleaned up a few 'SYSTEM' calls in the past. So an OSS message should do the trick (bar backward compatibility).
I am not familiar with what a "layered product" is to be honest.
,
Registered namespace licensed via SAP, with sub-namespace registered for new modules to the sub-name-space?
If you license your name-space via SAP then you already sold yourself to what-ever the latest person you talked to had for breakfast...
I have seen that bad design before, but can't remember where. If that was the worst sin in the design of ERP, we would be good in shape. Then again I have found a convenient way to dump the SAP GUI from my daily use, so things like that don't quite make me crazy anymore right now.
Take care,
Stephen
Stephen ! Great to see your byline after a long absence (mine). I agree it's not the worst sin in the world except that it's such an unsophisticated sin - a sin committed from laziness or ignorance. I hate those more than honest design conceptions which fail due to some factor that was not perceived, or attempts to match an application to a design pattern just for the sake of doing so, etc.
Anyway, "na eiste kala", as my Greek friends say, and if you're an FB user, please be sure to send me a friend request there:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.