Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. It amazes me SAP makes so much money...

It amazes me SAP makes so much money...

Scheduled Pinned Locked Moved The Lounge
databasebusinessxmlquestion
66 Posts 28 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Jeremy Falcon
    wrote on last edited by
    #1

    Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

    Jeremy Falcon

    K M M D L 16 Replies Last reply
    0
    • J Jeremy Falcon

      Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

      Jeremy Falcon

      K Offline
      K Offline
      kmoorevs
      wrote on last edited by
      #2

      A few years ago we tried to use their Dashboard Designer. What a pita to work with! About the time we got it working, we found out that they were abandoning the html5 export option leaving only flash as the only available option. The program was a resource hog that I loathed to start as it would take minutes to load. That program didn't make the cut on my newer rig or laptop. At least you're finding documentation. I've always found SAP to be horrible at documentation. X|

      "Go forth into the source" - Neal Morse

      J 1 Reply Last reply
      0
      • K kmoorevs

        A few years ago we tried to use their Dashboard Designer. What a pita to work with! About the time we got it working, we found out that they were abandoning the html5 export option leaving only flash as the only available option. The program was a resource hog that I loathed to start as it would take minutes to load. That program didn't make the cut on my newer rig or laptop. At least you're finding documentation. I've always found SAP to be horrible at documentation. X|

        "Go forth into the source" - Neal Morse

        J Offline
        J Offline
        Jeremy Falcon
        wrote on last edited by
        #3

        kmoorevs wrote:

        The program was a resource hog that I loathed to start as it would take minutes to load. That program didn't make the cut on my newer rig or laptop.

        Our dev environment is hosted on a beefy AWS instance... with only two users. SAP is still slow.

        kmoorevs wrote:

        At least you're finding documentation. I've always found SAP to be horrible at documentation.

        You are correct sir, and having table names like QQE@#22 and no foreign keys make things so much more fun to figure out. X|

        Jeremy Falcon

        1 Reply Last reply
        0
        • J Jeremy Falcon

          Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

          Jeremy Falcon

          M Offline
          M Offline
          Mycroft Holmes
          wrote on last edited by
          #4

          I think you'll find it is an app built by a semi competent developer in the 80s. Instead of scrapping it in the 90s and rewrite they have bolted more crap on top of existing crap. So you are wading through a pile if steaming crap. There are a number of these "enterprise" applications that really need to be scrapped for something that is better written. The problem is the sheer amount of time and money invested in these dogs as organisations customise the app to get around limitations and cater for their specific requirements.

          Never underestimate the power of human stupidity RAH

          J M 2 Replies Last reply
          0
          • M Mycroft Holmes

            I think you'll find it is an app built by a semi competent developer in the 80s. Instead of scrapping it in the 90s and rewrite they have bolted more crap on top of existing crap. So you are wading through a pile if steaming crap. There are a number of these "enterprise" applications that really need to be scrapped for something that is better written. The problem is the sheer amount of time and money invested in these dogs as organisations customise the app to get around limitations and cater for their specific requirements.

            Never underestimate the power of human stupidity RAH

            J Offline
            J Offline
            Jeremy Falcon
            wrote on last edited by
            #5

            I think you pretty much summed it up, and I'm sure it'll continue for a while longer no less.

            Jeremy Falcon

            1 Reply Last reply
            0
            • M Mycroft Holmes

              I think you'll find it is an app built by a semi competent developer in the 80s. Instead of scrapping it in the 90s and rewrite they have bolted more crap on top of existing crap. So you are wading through a pile if steaming crap. There are a number of these "enterprise" applications that really need to be scrapped for something that is better written. The problem is the sheer amount of time and money invested in these dogs as organisations customise the app to get around limitations and cater for their specific requirements.

              Never underestimate the power of human stupidity RAH

              M Offline
              M Offline
              Mark_Wallace
              wrote on last edited by
              #6

              Well, why don't we do it? There are certainly enough of us who can code, and enough with business knowledge/requirements. It's actually a project that's big enough for CP to handle. There aren't many that big. It would certainly be an opportunity to put feathers in a large number of caps.

              I wanna be a eunuchs developer! Pass me a bread knife!

              M S B 3 Replies Last reply
              0
              • J Jeremy Falcon

                Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

                Jeremy Falcon

                M Offline
                M Offline
                Marc Clifton
                wrote on last edited by
                #7

                Jeremy Falcon wrote:

                From this one table alone

                That's because the backend was (or still is) implemented in COBOL! :laugh: (Actually, it's probably true. :sigh: ) Marc

                V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                J 1 Reply Last reply
                0
                • M Marc Clifton

                  Jeremy Falcon wrote:

                  From this one table alone

                  That's because the backend was (or still is) implemented in COBOL! :laugh: (Actually, it's probably true. :sigh: ) Marc

                  V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                  J Offline
                  J Offline
                  Jeremy Falcon
                  wrote on last edited by
                  #8

                  Oh, you mean CBL1? :rolleyes:

                  Jeremy Falcon

                  1 Reply Last reply
                  0
                  • M Mark_Wallace

                    Well, why don't we do it? There are certainly enough of us who can code, and enough with business knowledge/requirements. It's actually a project that's big enough for CP to handle. There aren't many that big. It would certainly be an opportunity to put feathers in a large number of caps.

                    I wanna be a eunuchs developer! Pass me a bread knife!

                    M Offline
                    M Offline
                    Mycroft Holmes
                    wrote on last edited by
                    #9

                    Twould be a serious commitment of time and effort. The mind boggles at the discussions around the requirements, I think you would get some sort of spec out in about 5 years, if ever. I doubt you could even get an agreement on the platform(s) to be supported.

                    Never underestimate the power of human stupidity RAH

                    M 1 Reply Last reply
                    0
                    • J Jeremy Falcon

                      Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

                      Jeremy Falcon

                      D Offline
                      D Offline
                      David ONeil
                      wrote on last edited by
                      #10

                      Just be happy. The place I worked last year was still using BPCS. Had to interface some data with it, and the field names you just showed were MODELS OF CLARITY in comparison to those in that heap of crap! FP. RBAS. And numerous others my brain purged in order to keep my sanity!

                      My CodeProject Articles :: Our forgotten astronomic heritage :: My website.
                      "Sorry, buddy, but this mission counts on everyone being as silent as possible, and your farts are just too much of a wildcard." - Korra to Meelo, "Kuvira's Gambit"

                      J 1 Reply Last reply
                      0
                      • J Jeremy Falcon

                        Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

                        Jeremy Falcon

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #11

                        Jeremy Falcon wrote:

                        if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better

                        That appears to be the only de facto standard that really exists. I have seen enough money pits which better had been thrown away and rewritten 20 years ago, but everyone involved (including the customers) fear to lose all the time and money they put into them and bravely soldier on.

                        The language is JavaScript. that of Mordor, which I will not utter here
                        This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
                        "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

                        1 Reply Last reply
                        0
                        • J Jeremy Falcon

                          Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

                          Jeremy Falcon

                          Sander RosselS Offline
                          Sander RosselS Offline
                          Sander Rossel
                          wrote on last edited by
                          #12

                          Jeremy Falcon wrote:

                          using text fields for boolean logic

                          To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.

                          Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                          D D K N F 8 Replies Last reply
                          0
                          • Sander RosselS Sander Rossel

                            Jeremy Falcon wrote:

                            using text fields for boolean logic

                            To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.

                            Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                            D Offline
                            D Offline
                            David ONeil
                            wrote on last edited by
                            #13

                            Real programmers don't need foreign keys!

                            My CodeProject Articles :: Our forgotten astronomic heritage :: My website.
                            "Sorry, buddy, but this mission counts on everyone being as silent as possible, and your farts are just too much of a wildcard." - Korra to Meelo, "Kuvira's Gambit"

                            F 1 Reply Last reply
                            0
                            • Sander RosselS Sander Rossel

                              Jeremy Falcon wrote:

                              using text fields for boolean logic

                              To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.

                              Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                              D Offline
                              D Offline
                              den2k88
                              wrote on last edited by
                              #14

                              Sander Rossel wrote:

                              So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly!

                              That are almost equivalent options, as you can do it with a simple binary AND. It helps reportization, especially if the clients are dumb (as with only enough processor to keep a connection to a main server), which was the standard topology at the times. then topology changed, but you must maintain compatibility with older databases. What do you do, change the background and add a layer of compatibility or realyze that Y/N are two bytes as much as 1/0? In industial automation BTW the common patterns are 0xC0 and 0xC1 to encode 0 and 1.

                              CALL APOGEE, SAY AARDWOLF GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X If you think 'goto' is evil, try writing an Assembly program without JMP. -- TNCaver "Go ahead, make my day"

                              1 Reply Last reply
                              0
                              • Sander RosselS Sander Rossel

                                Jeremy Falcon wrote:

                                using text fields for boolean logic

                                To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.

                                Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                                K Offline
                                K Offline
                                Keviniano Gayo
                                wrote on last edited by
                                #15

                                Sander Rossel wrote:

                                What's more important, the average user will never see any of this.

                                Exactly! That's why SAP makes so much money. SAP is a well known ERP system. So when big companies setup ERP system they can only think of SAP.

                                1 Reply Last reply
                                0
                                • M Mycroft Holmes

                                  Twould be a serious commitment of time and effort. The mind boggles at the discussions around the requirements, I think you would get some sort of spec out in about 5 years, if ever. I doubt you could even get an agreement on the platform(s) to be supported.

                                  Never underestimate the power of human stupidity RAH

                                  M Offline
                                  M Offline
                                  Mark_Wallace
                                  wrote on last edited by
                                  #16

                                  CP/M, of course!

                                  I wanna be a eunuchs developer! Pass me a bread knife!

                                  1 Reply Last reply
                                  0
                                  • Sander RosselS Sander Rossel

                                    Jeremy Falcon wrote:

                                    using text fields for boolean logic

                                    To be fair, a boolean isn't part of the ISO specification (Oracle, for example, doesn't have a boolean data type). So you either use a numeric type and restrict it to 0 and 1 or you use a text type and restrict it to Y and N. I've seen the Y/N a lot (although I don't agree with it). At least be glad they documented it properly! What's more important, the average user will never see any of this. What matters to them is that it works and gives them the functionality they need and somehow it does. They don't care about your petty programmer problems like casting Y/N to booleans and keeping your data consistent without foreign keys.

                                    Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                                    N Offline
                                    N Offline
                                    Nathan Minier
                                    wrote on last edited by
                                    #17

                                    Sander Rossel wrote:

                                    Oracle, for example, doesn't have a boolean data type

                                    To be fair, Oracle is one of the best sources of negative examples in the industry.

                                    "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                                    Sander RosselS 1 Reply Last reply
                                    0
                                    • J Jeremy Falcon

                                      Surely, I can't be the only person to go through bits of SAP and think, if they can sell this, then in tech you apparently can pretty much shrink wrap and sell a turd to people who don't know any better. The more I dig into SAP the more WTFs I see. For instance... SAP Business One 8.8 Administration system ADP1 table definitions[^] From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate. More if I try, and this isn't counting the fact there are no foreign keys in the database, some of the denormalized data I've seen, and some stored procs with unnecessarily needed hard coded values. :doh:

                                      Jeremy Falcon

                                      L Offline
                                      L Offline
                                      Lost User
                                      wrote on last edited by
                                      #18

                                      Jeremy Falcon wrote:

                                      From this one table alone I can see 3 problems at least... archaic naming convention, using text fields for boolean logic, and not using an ENUM field or lookup table where appropriate

                                      archaic naming convention: it amazes me people see another's naming/coding style and label that as bad/problem, it's not an issue - what next, pick on people who have different skin color? using text fields for boolean: as others pointed out bool is not ISO, so not portable. SAP can use different underlying databases, and supports older DB versions of even those vendors that have those features. and not using an ENUM field or lookup table: well this is just a combination of the above two points. So no, your arguments that their code is bad is just simply 100% wrong. And so you think could do it better: will it work when rolled out to thousands of live enterprise sites, some of which have older systems/databases... THIS is why SAP make so much money (and they also don't employ bragging know-it-all smart asses like yourself because you don't get it.)

                                      Sin tack ear lol Pressing the any key may be continuate

                                      J 1 Reply Last reply
                                      0
                                      • N Nathan Minier

                                        Sander Rossel wrote:

                                        Oracle, for example, doesn't have a boolean data type

                                        To be fair, Oracle is one of the best sources of negative examples in the industry.

                                        "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                                        Sander RosselS Offline
                                        Sander RosselS Offline
                                        Sander Rossel
                                        wrote on last edited by
                                        #19

                                        And, like SAP, they make shitloads of money. Larry Ellison is one of the top eight richest people in the world (who, together, have more money than half of the worlds population together). Step 1. Do a shit job. Step 2. ??? Step 3. Profit. We can learn from these guys... :sigh:

                                        Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                                        N D 2 Replies Last reply
                                        0
                                        • Sander RosselS Sander Rossel

                                          And, like SAP, they make shitloads of money. Larry Ellison is one of the top eight richest people in the world (who, together, have more money than half of the worlds population together). Step 1. Do a shit job. Step 2. ??? Step 3. Profit. We can learn from these guys... :sigh:

                                          Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly

                                          N Offline
                                          N Offline
                                          Nathan Minier
                                          wrote on last edited by
                                          #20

                                          These people demonstrate nothing but greed and laziness, which are two things that everyone learns as a toddler. What we need is to stop rewarding people for providing garbage, but then where would the Kardashian's be?

                                          "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                                          Sander RosselS 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups