It’s getting repetitive

It’s getting repetitive. Let me say it again. It’s getting repetitive…

I keep rejecting the same kinds of contributions again and again – often from the same people, for the same reason.

It’s getting repetitive.

So, as it’s getting repetitive, I thought I’d mention here my (un)favourite list.

1) SMS type spelling

Do u no wht I mean?

This is supposed to be a site for professionals. Imagine your writing to your next boss. Would you use such a lackadaisical form of communication? Thought not. The fact is though, if you’re applying for a job, your prospective employer might well have a quick scan to see of your contributions on SCN. Do you really want to make a bad impression?

There’s another side as well. English is not the mother tongue of many contributors here. If you start using SMS (that’s “Short Message Service”) type abbreviations, then you make it really hard for those people to understand what you’re whittering on about.

2) Posting links

I hate it when I see a post that just says

link” – hope it helps.

Or

link

link

link

Try these.

At best all it shows is that the original poster could have searched for themselves. At worst, it’s a really lazy answer. “Hope it works. Not sure, I didn’t really look too closely, but I put some keywords into AFSE (A Famous Search Engine) and these were the first results. Maybe I’ll be lucky and they’re right and I’ll get some points”.

3) Use FOR ALL ENTRIES instead of INNER JOIN

How can I put this succinctly?

No. No.

No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No

That’s it. No more discussion.

4) Binary search

Look. We all know (or should know) that if we’re reading a STANDARD table then we might want to sort it and read it using BINARY SEARCH. But come on. Fifteen years ago an alternative became available – HASHED and SORTED tables.

Yet I keep seeing the same tired old responses “Use BINARY SEARCH with SORT”.

No – use a properly designed, properly typed table, and you won’t have to. They’ve only been around for fifteen years – why do people keep promoting this old technology! Or is half the world still on 31H?

5) SO_NEW_DOCUMENT_SEND_API1

Another very popular bit of ABAP. But again, it was replaced years ago with the CL_BCS set of classes. They’re so much more powerful and so much more easy to use, if you’ll put in some effort. And there’s so many examples…

Here’s a great blog about these classes, from Eddy De ClercqUnknown thus unloved? Again, thanks to Jelena Perfiljeva for the reminder.

6) Spec dumping

Thanks to Jelena Perfiljeva for reminding about this one. Spec dumping. That’s when someone, often a newbie (which makes you wonder how they got the job) have a report or some functionality. Instead of putting in some effort and applying the training they received (they did receive training didn’t they? I mean, no-one, surely, wouldpretend to have experience when they haven’t, would they…), they just dump the spec into the questions list.

So we get the stuff that should be within the grasp of anyone who didn’t sleep through the introductory ABAP course

“Dear Sir. I am a newbie. I have to write a program that will output “hello world” to the screen. Please share sample code”.

or the stuff that’s way beyond their capabilities, should never have been given to a newbie, and you wonder why they were assigned the task in the first place.

“Dear Sir. I am a newbie. I have to write a program that will be used by mission control to launch and track a superluminal probe, destined for the Frogstar. I’m told it must be written in ABAP Objects. Please can someone teach me what the DATA statement means…  rwds to good answers…”

If you’ve got a specific question, then we’ll all be glad to pile in and help – assuming it’s not a basic Frequently Asked Question easily answered by doing just a little research. But expecting us to do your job for you? Come on. I get paid by my employer to write programs for them. I should write programs for free for your employer? They might be a competitor!

7) Blogs and documents… that aren’t

Please. Before posting a blog or a document, make sure that a) it hasn’t already been covered elsewhere and b) it’s not just a program. Here’s a clue. If your content is 90% ABAP, then it probably isn’t suitable for a blog or a document. If it is a step-by-step guide, even with screen shots, likewise. Both these cases assuming the content isn’t already covered are far more suited to the wiki.

There are some exceptions to this. This blog A complete guide to OpenSQL statements – Step-by-step tutorial with screenshots doesn’t say anything ground-breakingly new. However, I felt it was so well written and so comprehensive, that it did add real value to the community.

But there was nonetheless a risk – taking into account a) and b) above. You need to be aware that rejection of blogs and documents now carries a penalty! 😯 Not only do you lose any points you got from the content – including those from likes and four or five stars, but according to how many you’ve had rejected, you get a penalty of 1-80 points! Because I’m not really a grumpy old man, if you’re unsure, feel free to drop me a line before publishing your content, and I’ll have a look. That way, if it isn’t up to scratch, I can tell you, and you won’t lose points for simply trying to contribute. You can get my contact details from my profile.

8) I’m a newbie so…

  1. The rules don’t apply to me
  2. I don’t have to do any research before posting
  3. This is my spec – please do my work for me
  4. You are obliged to help me… I’m a newbie!

OK, partly covered by 6), but I thought it merited it’s own section. Yes, we were once all newbies. And I don’t really mind basic questions, so long as they’re not Frequently Asked Easily Searchable Questions (FAESQs). What I do mind is laziness. Come on – do a bit of research; show you’ve put some effort into it.

It’s a bit like in the career corner, where people seem to insist that companies are obliged to give “freshers” without experience jobs, simply because they’re “freshers”.

9) Posting the same thing that just got locked or rejected by a moderator

Nobody has a right to post whatever they like. Posting the same content that you got rejected or locked, hoping the moderators won’t notice is not only sneaky and rather disrespectful, it’s also an action that can, in extremis, lead to your account being deleted 😑 and that would make me sad 😯 πŸ™ πŸ˜₯ .

10) Not sharing all the relevant information – or sharing too much!

“I’m doing x, y, z and I’m getting an error. This is my source code, these are my resources. Can someone fix this for me?”

Yes, I’d be delighted to. IF ONLY YOU’D TELL ME ***WHAT*** THE ERROR MESSAGE IS!

Or “I’m getting a dump when I run a report. Pls hlp”.

What are we? Telepaths!? Don’t you think that perhaps this is vital piece of information’ And it’s not just errors, it’s all kinds of questions where you have to drag the information out of the poster. It’s almost as if they don’t want any help – as though they’re doing you a favour by posting their question.

Of course, the flip-side is those who post the complete text of all thirteen books of Lemony Snicket’s “A Series of Unfortunate Events“, plus the unauthorised autobiography… instead of concentrating on providing the information that’s actually relevant. And as for people who post all 20’000 lines of their program code and can’t even be bothered to removed the 19’900 lines that are commented out…

11) Posting useless code

I’ve decided that this last one – mentioned in point 10) needs it’s own entry. To put it simply – only post the relevant bits of code. To put it bluntly, if you can’t be bothered to take out the useless stuff (like commented out code), then why should we be bothered to help you. Don’t be lazy!

So there you have it

My bottom five six seven eight nine ten eleven types of posts. If I see this kind of content in the ABAP space, don’t be surprised if it gets rejected… I’ll try not to leave a sarcastic note, but sometimes it is so hard not to!

Update…

12) The dump dump

Copy-pasting the whole short dump text from ST22 and asking for “guidance”. How about doing the job you’re being paid for? How about applying a little analysis, a little critical thought to what the error says, and just perhaps, applying a little effort to think about what the causes might be? If that’s too hard – then at least search before posting. And whatever you do – don’t paste a screen-shot! In the extremely unlikely event that your question is actually worth something, and its resolution might help others, if you’ve pasted a screen shot it can’t be searched!

13) The error dump

Copy-pasting the error message and asking what to do. How about doing the job you’re being paid for?  How about applying a little analysis, a little critical thought to what the error says, and just perhaps, applying a little effort to think about what the causes might be? If that’s too hard – then at least search before posting. And whatever you do – don’t paste a screen-shot! In the extremely unlikely event that your question is actually worth something, and its resolution might help others, if you’ve pasted a screen shot it can’t be searched!


Now, some sharp eyed individuals might notice that 12 and 13 are so similar, they don’t really merit separate entries. But you know what – they’re so annoying, I thought it worth mentioning twice.



To report this post you need to login first.

116 Comments

You must be Logged on to comment or reply to a post.

  1. Naveen Vishal

    Thanks Matthew for the insight.

    Quite informative for persons who are new to SCN rules, and getting acquainted to the environment. πŸ™‚

    Regards,

    Naveen

    (0) 
    1. Matthew Billingham Post author

      I hope I’ve not missed any. My intention is not really to vent… rather that people don’t waste their time (and mine) posting stuff that doesn’t add any value.

      I’ve got your best interests at heart. Honest…

      (0) 
  2. Siddharth Sharma

    Hi Matthew – I like the way the blog has been composed giving examples of repetitive links..no better way to prove a point.I see a similar status quo even in the Basis forums.

    Another point I would like to add here is that if we keep posts “clean” then searching in SCN becomes way easier else its like searching on search engine.

    (0) 
  3. Martin Grob

    aside from the coding specific mistakes this really should apply to all spaces πŸ™‚ unfortunately not all spaces enjoy the same quality of mods..

    (0) 
  4. Jelena Perfiljeva

    Thanks, Matthew, surprisingly short list. πŸ™‚ A favorite of mine would be “spec dumping”, gotta love those “my requirement is…”. πŸ™‚

    On # 5 I can highly recommend this blog (perhaps Eddy De Clercq could move it to ABAP space). Even if someone like me moved on from SO_NEW…, everyone can do it.

    (0) 
  5. Gareth Ryan

    I especially like the point about FAE vs inner joins – well played sir.

    The the problem is the offenders won’t see, read or even be aware of this post πŸ™

    (0) 
    1. Colleen Hebbert

      at first I thought each ‘No’ was a hyperlink to a different post. That would have been dedicated but then realised not possible as they would all be ‘unauthorised content’

      (0) 
  6. K.Arun Prabhu

    Hello Matthew.

         With reference to your second point, may I know where is it added in The SCN Rules of Engagement.

         My comments got rejected twice with reason mentioning “Do not post just links“. This statement I would say is incomplete, it should say what should I have done.

    Regards.

    (0) 
    1. Matthew Billingham Post author

      It is not referenced in the Rules of Engagement. However, it has been widely discussed, and the posting of just links or list of links is regarded as unwelcome behaviour.

      What you should have done depends on the question. If it was a faq, as might be evidenced by the fact that it was answered by a link or bunch of links that were easily searched, then the correct response is to notify the moderator of the faq.

      If it wasn’t a faq, and the only contribution you have is to post a link or links, then what you should do is post nothing at all.

      Note, links that support an answer are fine. Links that simply are the answer are not.

      The RoE are a guide. They are not a definitive list. The complete list is the RoE + what the moderators decide.

      If you try for a complete list, you always get a few idiots who’ll sail technically within the rules, but well outside the spirit. When you correct them, they weep and wail “but it wasn’t against the rules.”. Since moderation is a subjective task, it makes more sense to have a guide, and then leave the rest to the whim discretion of the moderators.

      (0) 
        1. Jelena Perfiljeva

          RoE says “3. Search before you post” and “10. Report rule violations”. When the question can be answered with just a link then this means that OP violated rule 3 and if we don’t report it then we’re in violation of rule 10.

          In few cases when I feel the OP might have had trouble searching (e.g. due to not knowing the correct terminology), I post a suggestion for which string to use in Google search. If we just give the OP a link, it only answers one question and they will be back with even more faqs. So “teach a man (or a woman) to fish” instead. πŸ™‚

          For the benefit of the community we must discourage both faq behavior and not reporting faq behavior. For example, just recently I was searching on Google for some error and was finding several old SCN posts that were pointing to each other and at the end to some other post. It’s just a waste of everyone’s time to build these “circles”.

          (0) 
          1. Simone Milesi

            To be honest, Jelena, since as also Matthew pointed out, search could be a bit tricky due the fact english is not mother language for many of us.
            So maybe we mis-translate something and the search send us catching butterflies πŸ˜€

            This just for explain why sometimes we-not english we post something already answer, not to complain or argue πŸ™‚

            Anyway we should, not, better, HAVE TO improve english and try to use it at our best, since english is THE internet’s language.

            (0) 
            1. Jelena Perfiljeva

              Hey-hey, let’s not misuse the “me no speaka any English” card. πŸ™‚ English is not native for me either. But I can assure you that in vast majority of cases one could take the exact verbiage from the post, copy-paste it in Google and get an answer.

              By the way, there is STERM transaction that shows translation of the official SAP terminology. And ABAP Help is available in English too. But posting a question on SCN is just soooo much easier. πŸ™‚

              (0) 
              1. Simone Milesi

                Again, no offence or argue intended! πŸ™‚

                But i speak for myself and my real life experience.

                i once asked a question because i was going mad on looking for a particular BAPI/FM and i was so frustrated not finding anything that i open a thread on SDN (it was the good old SDN before evolving into SCN πŸ˜€ ) and it took me ages before i recognize i was giving the wrong terminology.
                With the correct one, i could do a more accurate search without bothering the others here πŸ™‚

                And, please believe me, i got the best intentions when i open that post! πŸ˜›

                My English isn’t the best here around but i can find what i need pretty quickly, just i would like to point out that, sometime, the “ai nu spik inglish” card can be played and demonizing always something can bring to the opposite you look for: none dare to post a question πŸ˜€

                Again, no offence or argue or… well, i hope you understood what i mean -go back on school’s english book –

                (0) 
              2. Matt Fraser

                Oh cool, I didn’t know about STERM before. Learn something new every day! I even see that Russian is one of the base languages included, apparently.

                (0) 
                1. Gareth Ryan

                  Funny you say that Matt – after ~18 years of my SAP career I was only introduced to STERM recently by my non-SAP colleague Rhian Burge who is actually our marketing manager!  It’s reminded me not to take your knowledge for granted and there’s always something new (or in this case old!) to learn, and sometimes it takes a “newbie” to the SAP world to find them.

                  (0) 
              3. Matthew Billingham Post author

                Often, when the subject and content of the question is reasonably stated, if they just put the same words into famous search engine, they’d get an answer.

                (0) 
  7. nabheet madan

    Sir you nailed it…people treat SCN as their deputy where they dump their work and expect us to do it for them.

    For all such people please put honest efforts in solving your problem.  We all are here to help and learn. Search search search and please search before posting.

    Thanks Matthew for putting it forward:) my favourite so far is FAE/Joins:):).. Lets see who commits this next crime

    (0) 
  8. Joao Sousa

    Number 6 is the worse, not only is it annoying but it shows that the poster doesn’t have a clue about what he is doing.

    (0) 
  9. Paul Hardy

    My favourite posts on SDN appear as “discussions” – let us say I have problem XYZ and I do a Google Search and find a link to an SCN discussion which describes the exact same problem.

    A: Hello Gurus, I have problem XYZ can anyone help me please?

    B: Here is a link to some SAP help documentation (totally unrelated to problem XYZ) please reward my hard work with points.

    A: (a month later) Do not worry, I have solved probelm XYZ myself.

    C: (another month later) I have the exact same problem of XYZ. How did you solve it?

    A: “deafening silence”

    In other words it is absolutely fine if other people solve A’s problem for them, but A would rather commit ritual suicide than actually help anyone else.

    (0) 
    1. Jelena Perfiljeva

      Perhaps A solved it using FAE and SO_NEW_DOCUMENT_SEND_API1 (not to mention procedural ABAP) and would rather commit ritual suicide than admit it on SCN. πŸ™‚

      Although I wish we could award some kind of “solved it myself and who cares about others” badge…

      (0) 
    2. Suhas Karnik

      That deafening silence by A is the single most irritating thing on SCN.

      I’ve lost count of the times when I search for a frustrating problem, got the rush of hope seeing somebody who had the same problem… and then concluded the thread by proudly announcing that he vanished the problem, and no further details. It’s extremely callous for people to expect others to solve their problem, and then refuse to volunteer the solution when they find it on their own.

      I can live with the point-gamers, the link farmers and the people who post about this shiny new thing called the wheel which some scholars say can be used to move that yonder box. But the “I solved the problem but I won’t tell you how” people often seem like they belong in Dante’s innermost circle of hell.

      (0) 
  10. Raphael Pacheco

    I know I sometimes do some things that were said here and I do not deny that I am newbie here kkkk

    I am studying and attending a lot here, has been a good learning thank everyone here (Including you Matthew for your patience).

    Keep your words to my future posts πŸ˜‰

    (0) 
  11. Marco Cristobal

    Hi matthew

    I am not usually around but i understand you, finding those post makes me ask if at least they really tried. The number two reminds me that i use “Hope it helps” at the end of my answers, now im feeling guilty πŸ™ .

    Regards

    MC

    (0) 
      1. Marco Cristobal

        oh it does ! i think (:

        Matthew Billingham    

        What about the people who ask a question and someone post the way to resolve and then the same guy answer saying that with you answer found the “real answer” ? Is that valid ? having points with your own questions ?

        1 lets say i ask how to make invisible some parameters in screen

        2 someone reply saying that you should use screen output and post some code, obviusly not the answer because as you said they have to work.

        3 i reply saying thanks but that i have already found the way, using some elaborated code based on the guide of number 2, marks the answer(2) as helpful but mark my own(1) answer as right…

        sorry if i didnt explain well, english is not my native language.

        Regards

        MC

        (0) 
        1. Jelena Perfiljeva

          We don’t get any points for marking our own answers as correct, if that’s your concern. It’s up to OP to decide what answer they feel is helpful or correct, although the choices sometimes puzzle me as well. But at least it’s good when a question gets marked as answered because some people just disappear without any feedback.

          (0) 
    1. Joao Sousa

      On more point (although a bit more controvertial but shouldn’t be) is suggesting the use of non-released function modules.

      Using non-released function modules can make you system inconsistent, because many times they don’t have validations, and yet I see so many ABAPs using them without understanding this.

      (0) 
      1. Raymond Giuseppi

        More than unreleased FM, I “loathe” the suggestion to use update task FMs, usually those are nothing more than a collection of SQL statements, without any check nor logging.

        In SAP program they are almost called with many other update FM to update multiple tables and after the program performed a lot of checks.

        Regards,

        Raymond

        (0) 
      2. Matthew Billingham Post author

        But there are some none-released function modules that are quite alright to use – even suggested by SAP – e.g. RSDRI_INFOPROV_READ

        The problems occur when function modules (or methods) are used without any real understanding of what they’re doing. There is so much blind programming going on – which is evidenced by the number of “Please show me step by step….” questions, or blogs or documents that purport to explain, but just show a sequence of steps to be followed. It seems that a sizable group of “developers” don’t want to actually do anything other than follow procedures. Very dangerous.

        (0) 
        1. Suhas Saha

          Even the ubiquitous FMs – FP_FUNCTION_MODULE_NAME, SSF_FUNCTION_MODULE_NAME – are not released πŸ˜›

          I try (read: my best) to find if there are any released FMs available. If not, i resort to using “unreleased” ones without trying to re-invent the wheel. But of course keeping in mind the points Matt has already mentioned.

          I “loathe” the suggestion to use update task FMs

          Raymond Giuseppi – Why do you say so? For e.g., i want to update a custom table & write the log about the updated records. IMHO it is a better design to update the table & write the log(using IF_RECA_MESSAGE_LIST~STORE) via “Update task”, so that the atomicity of the transaction is retained.

          (0) 
          1. Raymond Giuseppi

            I was not meaning on customer table updated with customer update FM, I used those too for update and for change documents, and that is good practices  πŸ™‚ (*)

            But for use of standard update FM in customer programs.

            e.g. Question : I want to update KNA1, Answer use FM CUSTOMER_UPDATE. 😑

            Regards,

            Raymond

            (*) Even if persistant classes are now available, less programmers are now able to maintain  those, so I only tested those.

            (0) 
              1. Joao Sousa

                And they think it’s safer than INSERT … KNA1… (wohrl, it’s not direct SQL and it’s using standard SAP, innit?)

                That’s the main issue. I’ve seen people say that INSERT is big NO but then I see them use functions that do nothing more then INSERTs inside.

                But there are some none-released function modules that are quite alright to use – even suggested by SAP – e.g. RSDRI_INFOPROV_READ

                Then SAP should released the function. I doesn’t make any sense for SAP to suggest the use of a function without releasing it. That fact is that using non-released functions that make DB updates can lead you to serious problems.

                (0) 
        2. FrΓ©dΓ©ric Girod

          I disagree with you Matthew, such developers have already been existed.

          Before SDN, they just copy a program looks like what they have to do, and try to modify something to make it works.

          With forum like SDN / SCN they copy answers and try to make it works.

          For me the big problem, they ask to make their job. SDN for me is here to answer technical problems.

          (0) 
      3. kishan P

        Im totally with you on the “Not Released” Function Modules. In my last upgrade project we had to replace a few FMs with others or code new ones, because they failed to work in the upgraded system. And as expected (and rightly so) SAP threw up their hands saying “Those FMs were NOT meant to be used by Customers. So can’t help ya”.

        What beats me is, why were they made visible/available if they were not meant to be used?

        (0) 
        1. Joao Sousa

          They are meant to be used by SAP. Unreleased FM are similar to private methods in classes, the problem is that SAP itself doesn’t respect encapsulation, so they couldn’t make then unavailable to programs outside the Function Groups.

          (0) 
        2. Matthew Billingham Post author

          I was working on one large implementation, and after an upgrade to the APO system, it stopped working. The cause was found to be a couple of unreleased function modules that had been deprecated, and then removed. So who used these as part of the solution I hear you cry?

          The two SAP employees who were assisting with the implementation…

          (0) 
        3. Jelena Perfiljeva

          Totally you guys – nice SAP provided us plenty of released, fully supported and neatly documented functions to cover all the business requirements out there, but those stupid, lazy and evil ABAPers insist on using the non-released functions. Some nerve! And what is this guy complaining about here, oh my…

          [/sarcasm off]

          Personally I don’t recommend using non-released functions (well, not without pointing out that fact), but sometimes stuff just needs to get done, so you bite the bullet and deal with consequences later (or conveniently leave for another project πŸ™‚ ). I really envy you if you were never forced to put something in the program against all your principles.

          (0) 
          1. Joao Sousa

            I will accept that someone uses some unreleased FMs if they really understand what they are doing, but many people (if not most people) don’t.

            Using low level FMs that are nothing more then a wrapper for an INSERT/UPDATE is just unacceptable. If there are no other FMs, use batch input, or don’t do it.

            (0) 
  12. Alex Dunbar

    I think the problem with SCN is the way it is constructed, including the points system.  Somehow, stupid questions and stupid answers are being encouraged.  If you ever have cause to look at the forums on StackExchange, such as Stackoverflow, you would realise just how bad SCN is. 

    In the StackExchange environment, both questions and answers are policed by the community, so stupid questions get voted down / improved / locked / removed so you don’t have to waste time looking at them.  The best answers in each question are voted up and move to the top of the pile.  What you end up with is a resource that has intelligent an intelligible answers to just about any question you can think of.  Its a world apart from the mountain of garbage that has accumulated in SCN over the last 10-15 years.

    Is it perhaps time to ditch SCN and come to some arrangement with StackExchange?

    (0) 
    1. Matthew Billingham Post author

      This was attempted with the “like”, “useful” and “answered” buttons. Unfortunately, you can see that when you can get points for it, there’s a sizeable proportion of the community who are utterly indiscriminate. I’ve seen blogs and documents that are regurgitations of help.sap.com awarded 5-stars by people who (worst case) are aiding and abetting point gaming / (best case) think that saying nice things even about utter bilge is a nice thing to do. Frankly, the attempt to make this site a usable resource have been sabotaged by such folk. And they don’t half whine when you remove their content.

      Having said that, if I need help on a SAP topic, I come to SCN first. While there is a huge amount of noise, I can usually find what I need fairly quickly.

      (0) 
        1. Jelena Perfiljeva

          “Corporations are people, my friend” (c) Mitt Romney. πŸ™‚ I’d dare to speculate that the state of SCN actually has more to do with SAP politics than anything else.

          (0) 
        2. Joao Sousa

          Reiterating my point, the problem is the system, not the people.

          I don’t get this reasoning. Every system, upvote, downvote, etc, is dependent on people who use it.

          Stackoverflow is much more of a dictatorship, where people with low points, can’t even comment on some of the threads. It’s a much different beast, where people are regularly humiliated if they say something stupid. To sum up it’s elitist, which can be a good or bad thing depending on your objective.

          That’s not the spirit of SCN, where people can ask stupid questions without being insulted. It’s a bit more marketing oriented, it’s a site that tries to welcome people into the SAP world, while Stackoverflow is there to kick you in the nuts.

          Personally, while I dislike so much stupid content on SCN, I also don’t like the agressiveness on Stackoverflow and I use it a lot.

          (0) 
          1. Jelena Perfiljeva

            I don’t use Stackoverflow in particular but every other forum I know is much more strict against the basic questions and other rule violations.

            We don’t have to insult people asking stupid questions (also we could just as well misjudge ourselves what exacly “stupid” is) since everyone can just quietly hit the moderator button. All we need is just for everyone to get on board with this process, that’s all.

            (0) 
            1. Joao Sousa

              But like I said, I think it’s has much to do with the “spirit” of SCN. Whereas StackOverflow doesn’t really have an interest in grabbing the atention of everyone it’s much more strict, SCN tries to please everyone.


              I post mostly in the MM/LE forum, and I try to encourage people not to answer basic questions, because many times what I see is people trying to guess what the OP is trying to say, instead of reporting, which encourages further bad behaviour with the OPs feeling somewhat entitled. In that sense, I think that is the thing that needs to improve the most.


              And I can’t complain about the moderator of MM/LE since Jurgen is awesome at moderating “bad” behaviour, if people take the time to report it.

              (0) 
            2. Juwin Pallipat Thomas

              I have seen many posts where people have posted answers for (6), without just hitting moderator button. So, may be, introduce 1 point for the person who hits the moderator button correctly?

              Thanks,

              Juwin

              (0) 
                1. Steve Rumsby

                  How about 1 point if the moderator agrees with the report, -2 if they don’t. That’ll make the point hunters think twice… πŸ™‚

                  Steve.

                  (0) 
                  1. Matt Fraser

                    I think that’s likely to actually reduce moderator alerts overall. I’ve had alerts rejected before that — at least to me — were perfectly legitimate alerts. I suspect it’s better to keep the alerts “pointless,” so to speak. πŸ˜‰

                    (0) 
                2. Juwin Pallipat Thomas

                  That’s painfully true… Moderators may get bombarded with all the alerts.

                  But, I feel that it will help build up a good clean repository of intelligent questions and suitable answers.

                  Which one is worse…. some people getting extra points for doing good for the community or some people getting loads of extra points (10 per question), for supporting such questions (point 6)?

                  Juwin.

                  (0) 
              1. Michelle Crapo

                I would like to see those that have been “locked” taken off of SCN.   An e-mail or something could be sent to the original poster.  Let me tell you some of my searches lately have been painful. 

                As for giving them points — I agree with the negative points.

                (0) 
                1. Matthew Billingham Post author

                  1 point for every accepted moderator notification I like. I wouldn’t want to hand out negative points for rejected notifications – but it’s not needed. The way to discourage frivolous mod notifications is a quick account suspension for the abusers. A bit like how the courts deal with vexatious litigants πŸ™‚ .

                  (0) 
    2. Paul Hardy

      I would love to look at the ABAP questions every night and try to help people who are stuck trying to do something complicated and who have tried everything else and are at their wits end.

      However when I go to the ABAP forums on SCN this is what I see – here are two actual example questions I have seen at the top of the queue the last two times I have dared to look in the last six months:-

      (1) Is there an IF statement in the ABAP language?

      (2) What does the PERFORM statement do?

      This reminds me of a question on IT toolbox circa 2002 which read:-

      “I have just just been appointed head consultant on an SAP implementation for a multi-national company. I have heard there is something called the IMG which can help on SAP projects. Can anybody tell me what this is?”

      When I see questions like this I just burst into tears and go and hide under the sofa for six months.

      (0) 
      1. Paul Hardy

        Here is another one from 18th of April 2008

        “Is there a list of all the tables that SE16 can pull up?

        and/or what does each table do?”

        (0) 
    3. Clint Smith

      Alex, I’m not sure I would go that far, but I have noticed some times when I search for something the first page of results are locked by moderator or unanswered.  Why wouldn’t those drop to the very bottom of the results?  So then I’m tempted to post a new question, but then I’m certain to get in trouble. I haven’t noticed it recently so maybe its improved…

      Its only easy if you know the answer.

      (0) 
  13. Paul Hardy

    Can you please give an example of one word in Matthew’s original article that was not spelled correctly, and maybe highlight a grammatical error.

    I have just re-read it twice, and could not find any, except when he was being sarcastic.

    (0) 
    1. Randy Strader

      In section 4) of his post, he accidentally misspells “an”:

      Fifteen years ago and alternative became available…”.

      It’s a good post. I’m not being combative, but you asked.

      (0) 
  14. Syed Ghulam Ali

    Dear Matthew,

    You are correct in saying that Binary Search with Sort has gone old and we have to use Sorted or Hashed internal tables.

    but In many of the cases i have to use the same internal table data in different ways depending on different condition like sometimes i have to get the latest record sorted by date time or sorted by any other field dynamically.

    In this case either i need to maintian multiple sorted internal tables and use them as per the condition

    or

    sort the single standard table depending on the condition and use it.

    which way do you think is better: multiple sorted table with static key which will utilize more memory as well as processing time for sorting(even though you are not sorting explicitly the system does it for each record inserted, i guess). or a single standard internal table which can be sorted as required.

    (0) 
    1. Jelena Perfiljeva

      You might want to post this as a discussion, although a better option might be simply trying different options yourself and running performance analysis. You’d be amazed how many other things you can learn while doing that. πŸ™‚ Maybe even post a blog with your findings and cash in on some sweet points.

      (0) 
      1. FrΓ©dΓ©ric Girod

        You means they will do there job herself ?! 

        That will be exhausting, no ? πŸ™‚

        Maybe for 1/3 of the questions where I have found the answer, I ask myself google, find the solution, and rewrite it in SCN.

        At the beginning of SCN I have expected we will find the same respect, the same quality of question, than of OSS note.

        I will really appreciate stronger moderation, for me SCN is not here for beginner. It’s only for technical problem, or solution implementation problem.

        (0) 
        1. Joao Sousa

          I will really appreciate stronger moderation, for me SCN is not here for beginner.

          I agree, but yet you see SAP students searching for answers, which is probably one of the main sources of garbage as far as professionals are concerned. I don’t think it falls outside the RoE and it’s unlikely they will ban students from using SCN….

          (0) 
    2. Matthew Billingham Post author

      See here: First real use of secondary indexes on an internal table

      If you’re at a lower release, then additional tables that hold just the keys that you want to access the table by, with a reference to the data in the main table.

      You only have to worry about memory if you’re dealing with very large datasets. I only encounter that kind of volume writing extractors into BW. In normal usage, for me at least, memory constraints are not an issue.

      (0) 
      1. Syed Ghulam Ali

        yes Matthew,

        this of my experience in internal tables is because of BI reports, i need to process millions of records and usaually i end up maintaining multiple tables for same data.

        and for using secondary index concept i am at lower version

        (0) 
  15. Pau Gavino Martinez

    Hi, I rejected a response yesterday and did not understand the reason.

    What‘s wrong with linking to another post indicating the solution ?

    Reading this blog I understood the reasons.

    I hope I never make mistakes.

    Thanks for blog !!!

    (0) 
    1. Matthew Billingham Post author

      It’s harder to get the message across in a rejection notice, so that’s partly why I wrote the blog. I’m glad it helped you. Thank-you for letting me know. πŸ™‚

      (0) 
          1. Marco Cristobal

            “The amount of stupid questions are so damn high” hahaha

            well, im almost every day in the forum and it will be good to just report one o maybe two questions, but there are a lot of them, more than five!!! there are silly questions and there are people who answer it, i just saw one question about a split and strlen

            “How to Determine Length of variable up to period (.)”

            (0) 
  16. sampath kumar

    Thanks Matthew for this blog.once my blog rejected,now I understand the reason. Hope I never do any mistake in future.

    Thanks,

    Sampath

    (0) 
    1. Jelena Perfiljeva

      Yes, subject needs to be descriptive and relevant to the actual content. Please feel free to alert moderators if subject is too generic. Although most frequently those are ‘did not search’ posts and have to be removed entirely.

      (0) 
  17. Michelle Crapo

    OK, I have to add a comment that will get me jumped on by – well by – just about everyone.   FAE vs. joins…    NO for FAE.

    OK here’s my  problem with a blanket statement  –

    1.   Pet peeve of mine – Writing a join against 4 or more tables.   Talk about getting confusing.   I call this lack of readability.  AND you can’t tell me performance is better – not unless you write the program and show me the trace.   When people do that – guess what?   It’s not better.  At times worse, granted it’s because they wrote the join incorrectly – when it’s worse.

    2.  What about the times when you can limit your list?    Here’s what I mean – you select records from a header table, and you don’t need all the detail tables records.   So here’s an example:

    Select a generally known table VBAK based upon something, let’s say date.

    You have conditions that need to be sorted through based upon selections.  Do some processing here.

    Eventually select JEST.

    Limit VBAK further based upon conditions from screen and JEST.  Display the data via something – ALV.

    Now they dig into the details of a list of 50 records.

    Select single in a loop is not a great idea.

    The join at the beginning would have given us a lot more records than we wanted.

    So at this point when reviewing code – I would say use for all entries.

    3.   Last the chance of an incorrectly written JOIN.  And let me tell you that happens easily with more than 4 tables.

    Alright have fun telling me I’m wrong!   I like a good debate.

    (0) 
    1. Matthew Billingham Post author

      Fight! Fight! http://www.englishforum.ch/images/smilies/standard/boxer.gif

      Well… you’re wrong. But then again you’re perfectly right. There is no blanket rule that FAE is worse than INNER JOIN. That’s why I always say “in most cases”.

      It is my considered view that a huge number of ABAP developers, hopefully not a majority, are not competent. They need clear rules. A rule more complicated that “don’t use FAE, use INNER JOIN” is pointless. The reason I started my campaign is that there was a blanket statement, adopted as a rule by the hard-of-thinking, in the other direction. Which, again, in my considered opinion, was more harmful.

      Of course there are nuances. Even joining 5 tables (as I’ve done with HRHAP_BASIC and its associates) can be entirely unproblematic, definitely without performance problems. Bad programmers write bad programs – whether that’s because of INNER JOIN is harder to use than FAE is kind of moot. We might as well say “Let’s not using ABAP Objects, because rubbish programmers can write really rubbish programs using that…” Oh, hang on, some people do say that! Me, I say chuck the bad programmers and increase the average competence of the workpool.

      I do use FAE. In BW it’s kind of hard not to, since you’re provided with data in a package in an internal table. I’ve used it in a non-BW environment because, yes, sometimes it makes sense.

      FAE in a HANA environment can really screw you up. I’ve spent the last year sorting out such issues. Some are fixed by a simple HINT, others require considerable refactoring. Since the general principle of HANA programming is “let the database do it”, it becomes even more important to learn how to correctly craft JOINS.

      In conclusion then, my modified blanket statement would be. Use the most appropriate solution. In the vast majority of cases that will be INNER JOIN, so try that first, and only if there are problems and FAE will simplify matters, then use that.

      (0) 
      1. Michelle Crapo

        Thank you for humoring me!   Perfect answer.   I say toss all the programmers that have new ideas!   They must be totally wrong.  Let’s stop learning anything too – I mean change isn’t constant or anything. 

        Yes, 5 joins can be fine.   It depends on how they are written.   HANA.   I do seem to recall hearing something about that.  I know it won’t be popular because it’s new.

        Actually – I need to read up a bit on that.   I’m thinking a lot of the old programs will have to be overhauled.   Selects at the top for everything and then process later.   It may actually be better to select the data as you need it.   Should be fun to see what happens to the older stuff.

        (0) 
        1. Matthew Billingham Post author

          With HANA you can even use SELECT … ENDSELECT quite nicely. And yes, selecting data as you need it is viable. But still with separation of logic from gui. What you have to be careful of is select singles, and (especially) select *.

          I recently optimised a program, where it turned out it was more effective to SELECT DISTINCT werks… than to process the internal table that had already been selected from that same table. (Half a million records – select distinct is sooooooooooooooo fast in HANA!).

          (0) 
    2. Paul Hardy

      In the code inspector there is now a check for “for all entries” that could possibly be converted into inner joins.

      Like all code inspector checks you can’t just follow the system recommendation blindly – you have to think about it, and suppress the check if you think it is nonsense.

      I use inner joins when I can, but still use “for all entries” a lot. Like all rules the rule to prefer joins has loads of exceptions. The obvious use cases for joins are on pairs of tables like VBAK/VBAP or LIKP/LIPS where you just have a few selection criteria. MKPF/MSEG was a good candidate for a join until – thank goodness – SAP released that OSS note which changed the data model and duplicated all the important MKPF fields in MSEG, so you only had to read one table.

      In the SAP Press book “improving the quality of ABAP development” which (a) had a picture of an egg on the front and (b) is now out of print, they had a section of not doing a join between transaction data tables like VBAP and master data tables like MAKT. That was deemed bad because you have the same MATNR lots of times in VBAP but only once in MAKT. That would be a case for a “for all entries” – get the VBAP records, fill an interim table with the unique materials, then do a FAE on MAKT.

      If buffered tables are taken into the equation, sometimes it is better to read the data in a loop as in some such cases SELECT SINGLE uses buffering (hence no database access) whereas the join and the FAE bypass the buffer. Just to confuse the issue in a 7.40 system my understanding is that FAE no longer bypasses the buffer.

      Talking of 7.40 system I don’t suppose very many people are on one yet, but in the example above where you have to read one table, and then do some complicated filters, in a 7.40 system the scope of what you can do inside a SELECT statement has been increased i.e. you can do CASE statements and the like inside the SELECT statement, processing you would normally do on an intermediate results list.

      So the rules are complicated enough to begin with, and have to be constantly looked at as the system behaviour changes with new releases….

      Cheersy Cheers

      Paul

      (0) 
      1. Jelena Perfiljeva

        I suspect no one will be banned from SCN for having an intelligent and informed discussion, even if it’s on FAE. Matt’s statement originated (I think) from the opposite cases where some folks were preaching about FAE virtues without understanding pros and cons or even having a solid evidence.

        (0) 
  18. Shakul Jugran

    Hello Matthew,

    I find the transition from the old SCN to the new community a bit confusing and therefore I re-read your blog and the rules of engagement. I wanted be sure before I asked – why was my question deleted?

    It was a perfectly valid, very specific question about aggregations in ABAP CDS to which I couldn’t find any helpful insights through documentation. Now when I go to it, I see that it has been deleted? :O

    Question-Β Cds-Aggregation-Sum-Function-for-DF34_DEC-data-type

    If the moderators deem it was unnecessary/hurtful/redundant then I would really appreciate a reason because at the moment I’m not really sure what happened.

    Also, I had to post my concern here after trying to unsuccessfully DM you.

    Thanks for your time!

    Regards,
    Shakul.

    (0) 
  19. Lakshminarasimhan N

    HiΒ Matthew Billingham,

     

    I know this is not the right place to put my request but i dont have a choice to reach you other way. You have rejected my blog “NEW_RECORD__END_ROUTINE – How to use it“…. unfortunately i did not look into “Editorial comments” as i was not aware of it…. Hence i was resubmitting my blog again and again.

    Now i know where to look for the comments, can you please untrash my blog, so that i would do the changes suggested byΒ Tammy Powlas

    Thanks.

     

    (0) 

Leave a Reply