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.
  • M Middle Manager

    So to sum it all up it sounds like we have the perception that exorbitant cost of product should equal better coding standards or at least an upgrade to better technology. What's new? I am curious about one aspect though... there was mention of poor referential integrity. Are you saying that there is actually misshapen data like, for instance, orphaned records or data points stored in the wrong fields or invalid values (i.e. an invalid enum value)? That would be more alarming.

    F Offline
    F Offline
    Foothill
    wrote on last edited by
    #30

    When I was a lot newer to programming and databases, I once wrote an application that maintained the referential integrity through the code. If I knew then what I know now :sigh:

    if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

    M 1 Reply Last reply
    0
    • F Foothill

      When I was a lot newer to programming and databases, I once wrote an application that maintained the referential integrity through the code. If I knew then what I know now :sigh:

      if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

      M Offline
      M Offline
      Middle Manager
      wrote on last edited by
      #31

      I unfortunately work with a legacy system that was written without FKs. The amount of crap data in this DB is enough to make angels cry. This is why I was curious. It's the classic thinking that you only need to write a DB for the front end's needs without considering that other systems may one day interact with it with their own idiosyncrasies (forget about devs going in and mussing things up directly in the tables).

      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!

        B Offline
        B Offline
        Bruce Patin
        wrote on last edited by
        #32

        There are already a number of open source apps that could replace SAP. I would suggest finding your favorite and contributing.

        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

          I Offline
          I Offline
          Idaho Edokpayi
          wrote on last edited by
          #33

          You're not the customer. What I've learned the hard way is that business doesn't care that if it's coded well, that's not their problem. What they care about is whether the software helps them solve a problem and ultimately whether it saves or makes them money. It's our job to convince them that good code saves and makes them money!

          Idaho Edokpayi

          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

            C Offline
            C Offline
            chrisseanhayes
            wrote on last edited by
            #34

            appropriately named SAP because it's for saps

            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

              D Offline
              D Offline
              Davie21240
              wrote on last edited by
              #35

              and it sucks!:mad::thumbsdown::thumbsdown::thumbsdown::thumbsdown:

              J 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

                F Offline
                F Offline
                FireDog31262
                wrote on last edited by
                #36

                At least SQL Server does have a bit data type that can be set to 1 or 0 which is closer to boolean.

                No matter where you go, there you are...~?~

                1 Reply Last reply
                0
                • C chrisseanhayes

                  appropriately named SAP because it's for saps

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

                  :-D

                  Jeremy Falcon

                  1 Reply Last reply
                  0
                  • D Davie21240

                    and it sucks!:mad::thumbsdown::thumbsdown::thumbsdown::thumbsdown:

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

                    :-D

                    Jeremy Falcon

                    1 Reply Last reply
                    0
                    • U User 12646285

                      SAP gets into a company through the management board (CEO/CIO). Non technical people worried about their seat in the company - not the company itself. Their goal is to implement a system that will work - they won't take riscs with new IT companies/technologies. If the projects fails they loose their pretty seat in the company... With SAP they cannot go wrong. It'll work eventually, slow & expensive, but it'll work and they'll keep their seat. After the implementation the saying is that everything works great, because nobody has the guts to admit that they spend X miliions for a piece of crap..

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

                      You sir, hit the nail on the head.

                      Jeremy Falcon

                      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

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

                        Sander, we're all professionals here. No need to point out the obvious about it not being an ISO standard. However, it doesn't mean one shouldn't follow common best practices. I can list a handful of reasons why doing what they did is a bad idea for booleans, and any DBA worth his/her weight could too. I choose not to state the obvious however, unless it's asked. Btw, the sky is blue. ;P

                        Jeremy Falcon

                        Sander RosselS 1 Reply Last reply
                        0
                        • L Lost User

                          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 Offline
                          J Offline
                          Jeremy Falcon
                          wrote on last edited by
                          #41

                          Try your pretty little online argument crap with someone less experienced and stop wasting my time. It may work on those that know no better. And while we are at it, you use too many commas. What's next, you're a child killer?

                          Jeremy Falcon

                          L 1 Reply Last reply
                          0
                          • I Idaho Edokpayi

                            You're not the customer. What I've learned the hard way is that business doesn't care that if it's coded well, that's not their problem. What they care about is whether the software helps them solve a problem and ultimately whether it saves or makes them money. It's our job to convince them that good code saves and makes them money!

                            Idaho Edokpayi

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

                            You are correct sir. It just took me for a surprise after being exposed to it is all. I totally agree with you however.

                            Jeremy Falcon

                            1 Reply Last reply
                            0
                            • M Middle Manager

                              So to sum it all up it sounds like we have the perception that exorbitant cost of product should equal better coding standards or at least an upgrade to better technology. What's new? I am curious about one aspect though... there was mention of poor referential integrity. Are you saying that there is actually misshapen data like, for instance, orphaned records or data points stored in the wrong fields or invalid values (i.e. an invalid enum value)? That would be more alarming.

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

                              Ed Bouras wrote:

                              So to sum it all up it sounds like we have the perception that exorbitant cost of product should equal better coding standards or at least an upgrade to better technology. What's new?

                              Touché! :laugh:

                              Ed Bouras wrote:

                              I am curious about one aspect though... there was mention of poor referential integrity. Are you saying that there is actually misshapen data like, for instance, orphaned records or data points stored in the wrong fields or invalid values (i.e. an invalid enum value)?

                              None that I've noticed yet. So I assume (hope) SAP helps enforce it, but there are no such foreign keys in the DB to help enforce it.

                              Ed Bouras wrote:

                              That would be more alarming.

                              Finally, someone with experience talking. You're correct. Seeing the lack of foreign keys was what started this whole jaw dropping thing actually. It just went from there.

                              Jeremy Falcon

                              1 Reply Last reply
                              0
                              • K Kirk 10389821

                                We tell a joke about SAP. We know many companies who have started migrating to SAP. A few who have given up, and NONE who have completed the migration yet! We finish with... Rumor has it, SAP is almost COMPLETELY on SAP now! :-)

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

                                :-D

                                Jeremy Falcon

                                1 Reply Last reply
                                0
                                • D David ONeil

                                  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 Offline
                                  J Offline
                                  Jeremy Falcon
                                  wrote on last edited by
                                  #45

                                  Ok, fair enough. Thanks for making me feel better. :laugh:

                                  Jeremy Falcon

                                  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

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

                                    Sander Rossel wrote:

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

                                    Also, a lot of RDBMSs don't have a boolean type, but come on, everyone knows to use an integral value for boolean logic in that case. I could list the reasons why, but after 20 years of arguing online with people that love to argue because they mistake that for being "smart", I simply do not care anymore. I'd rather spend my time more wisely then argue with people with no experience (not saying you, you're smart just well you know... if you've hung around coders you know what I mean). But, I'll give a hint why anyone worth their weight DBA wise wouldn't use a text field for booleans... code pages / character sets / insert whatever mapping here, not every RDBMSs can restrict case and if so its less performant, wasted space and memory for storage... and that's just three without having to think about it. Y/N as text simply means it was rookies. I could go on and on and on, but I no longer have the desire to these days. It just simply amazes me something so bad could make so much money, that doesn't mean I need a lesson on something about databases that I already know.

                                    Jeremy Falcon

                                    Sander RosselS 1 Reply Last reply
                                    0
                                    • J Jeremy Falcon

                                      Try your pretty little online argument crap with someone less experienced and stop wasting my time. It may work on those that know no better. And while we are at it, you use too many commas. What's next, you're a child killer?

                                      Jeremy Falcon

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

                                      LOL. Just keep on believing that. SAP is making billions, you're not!

                                      Sin tack ear lol Pressing the any key may be continuate

                                      J 1 Reply Last reply
                                      0
                                      • L Lost User

                                        LOL. Just keep on believing that. SAP is making billions, you're not!

                                        Sin tack ear lol Pressing the any key may be continuate

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

                                        And neither are you. So you just invalidated your own post as well.

                                        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

                                          S Offline
                                          S Offline
                                          Snorri Kristjansson
                                          wrote on last edited by
                                          #49

                                          Some believe that SAP was Germany's revenge for losing the was (WWII). See this [^]

                                          J 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