Saturday, October 20, 2012

How to approach a multi-phased multi-warehouse upgrade for RedPrairieTM Upgrade?

Introduction

RedPrairie WMS allows for having multiple warehouses in the same instance. This is a powerful feature and I always encourage the customers to consider this over the alternative where you will have a single RedPrairie instance for each warehouse. When you have a single instance the overall footprint improves significantly because for each instance you typically have:
  • Development, test, production, etc.
  • Archive environment (Do not go down the path of having a single archive instance for multiple online instances. You shall regret it)
  • So you can imagine how having fewer instances makes it simpler to support such an environment from IT perspective. You will also have a single code-base and a single environment to patch.

    Problem

    The initial go-live is done and now it is time for upgrade. At this time if you can afford to upgrade all of the warehouses at once then it is great but if you want to upgrade warehouse at a time, now we have some challenges. At a high level such a project will go as follows:
    • Assume old environment is OLDE and has multiple warehouses
    • Assume the warehouse to upgrade is WH1
    • Install the new version. Lets call this NEWE
    • Migrate the warehouse WH1 from OLDE to NEWE
    • Go live with warehouse WH1 in NEWE while OLDE is still running the other warehouses
    • At some later time do the same for the next warehouse
    Even after following this long and arduous process, we will have some basic challenges:
    • Can the host send transactions to multiple instances?
      • This implies that host will send some transactions to OLDE and some to NEWE. This is generally not a huge problem if you are using an ERP like SAP, Oracle, JDE, etc.
    • What about the sequence numbers when the second warehouse merges with NEWE
      • This is the main problem. Some primary keys that are based on sequences, like wrkref, cmbcod, ctnnum, dlytrn_id, trlract_id, ship_id, ship_line_id do not have wh_id as part of the primary key. This implies that when second warehouse will merge we will have an issue with this data. Never fall for "the online data will be cleared" because that will just push the issue to the archive instance.
    Some possible solutions may be:
    • Do not upgrade history
      • This option may look good in a conference room but it is really quite ugly. This suggests that the warehouse users will go to the OLDE and Archive for OLDE to look at data before a certain date and go to NEWE for newer data. Just imagine the next upgrade now. You will always need these OLDE environments around because some industries require you to be able to access data for several years.
    • Utilize the sequence prefix along with base-36 sequences
      • Even if you did not use base-36 sequences in old environment, set them up in NEWE. In NEWE use a different prefix from OLDE, for example A0 for wrkref, B0 for cmbcod etc. (I generally recommend not to break the sorting rules so if you are starting fresh then A and B prefixes are ok but if you already have W as the prefix then use X so that old data and new data sorts properly. Never assume that RedPrairie will always sort by date - it may [and should] be sorting by this sequence ) With base-36 you will have plenty of room to expand. Now when the next warehouse is merged the old data will simply load in and not cause any primary key issues. Also there will not be any issue with the archive environment.
        Now when we do the next upgrade we can use A1 prefix and so on. You will have a lot of room for future upgrades with this approach.
    Another question you may be asking is if the approach described above has to be that painful for bringing one warehouse at a time. Notice the concept of a duplicate environment, copying the data there, then removing all warehouses except yours, then upgrading it etc.
    Considering the current solution-set where the "dbupgrade" process upgrades the whole database that is being referenced by the current environment that is the only option. The upgrade scripts merge the concept of schema changes and data migration.These scripts also change the whole database, i.e. do not selectively run for certain warehouses. When we are bringing in the second warehouse into NEWE ideally:
    • the process could have ignored the schema changes
    • Only bring data from OLDE to NEWE and at the same time change the data definition
    • When bringing in the data, bring in selected rows
    I have not seen the new RedPrairie solutions in this regard (like environment manager) so I cannot comment on them but if the solution works by pointing to an environment that may be a different version and load subset of data to an environment with a newer version and performs well then it would be a good solution otherwise you may have to invest in developing it yourself. Contact me if you want to consider developing such a solution.

    3 comments:

    1. Cum a mințit cea mai bună prietenă a mea împotriva mea pentru că îl vrea pe soțul meu doar pentru ea. Vă rog să fiți atenți la persoanele pe care le numiți prieteni. M-am căsătorit cu iubitul meu drag din liceu. Trăiam în pace și ne bucuram de viață. Avem doi copii împreună. Totul mergea bine pentru noi. Soțul meu nu este mereu prin preajmă pentru că lucrează în alt oraș. Așa că într-o zi, soțul meu s-a întors acasă și a început să se comporte ciudat. Comportamentul său față de mine și de copii s-a schimbat. Încercam să înțeleg ce se întâmplă. Nu mi-a acordat niciodată atenție și nu m-a ascultat. Câteva zile mai târziu, soțul meu m-a rugat să ies din casă, spunând că nu mai este interesat de căsnicia noastră. Am încercat să vorbesc cu el ca să-mi spună unde am greșit, dar totul a fost în zadar. Comportamentul și caracterul lui față de noi au scăpat de sub control. Nu am avut altă opțiune decât să plec din casă cu copiii. Asta îmi făcea inima să sângereze de fiecare dată când mă gândeam la asta, pentru că acesta era un bărbat pe care l-am iubit din toată inima. Am plâns și mintea mea a fost îngrijorată timp de cinci luni bune. Vărul meu, care a avut o problemă similară cu a mea, mi-a spus să-l contactez pe DR. WALE, spunându-mi că DR. WALE îmi va salva căsnicia. Când l-am contactat, i-am povestit cum s-a întâmplat totul. Am plătit pentru toate materialele necesare pentru a termina treaba. DR. WALE a aflat că cel mai bun prieten al meu era în spatele a tot ce se întâmplă în căsnicia mea. A spus că prietenul meu i-a spus soțului meu lucruri negative. DR. WALE a mers mai departe și a spus că amândoi au o aventură împreună. Așa că DR. WALE a făcut ce știe cel mai bine să facă, spunându-mi că soțul meu va veni să mă implore. DR. mi-a spus că cel mai bun prieten al meu a făcut o vrajă malefică, așa că soțul meu ne-a întors spatele. Dar, datorită DR. WALE, soțul meu a venit să mă implore să o iert, spunând că nu știe ce i s-a întâmplat. Pentru că DR. WALE mi-a povestit tot ce s-a întâmplat, a fost ușor să-l iert. Acum trăim împreună ca o singură familie mare. Dacă vrei înapoi pe fostul tău partener, DR. WALE este omul potrivit de contactat. WhatsApp/Viber: +2347054019402 SAU Email: drwalespellhome@gmail.com

      ReplyDelete
    2. Aceasta a fost o mare binecuvântare în viața mea. Faptul că l-am cunoscut pe Dr. Reethesh a fost unul dintre cele mai bune lucruri care mi s-au întâmplat vreodată. Iubitul meu s-a întors la mine după ce am apelat la ajutorul Dr. Reethesh. El a ajutat la eliminarea influenței negative a unei terțe persoane care ne afecta relația. Astăzi, soțul meu mă iubește din nou, iar relația noastră a fost restabilită. Sunt cu adevărat recunoscătoare pentru sprijinul și îndrumarea primite în această perioadă dificilă. Vă mulțumesc, Dr. Reethesh, pentru că ați ajutat la readucerea fericirii în viața mea. Recomand cu căldură să luați legătura cu el pentru a vedea dacă îndrumarea sa vă poate ajuta și pe dumneavoastră. WhatsApp +2349012999010 sau reethesh60@gmail.com

      EL LUCREAZĂ ȘI LA MULTE ALTE CAZURI, PRECUM:

      Vrăji pentru a deveni faimos
      Vrăji pentru o dezvoltare extraordinară a afacerii
      Vrăji pentru a obține un loc de muncă
      Vrăji pentru a găsi un soț
      Vrăji pentru a câștiga un proces în instanță
      Vrăji pentru a scoate persoanele dragi din închisoare
      Vrăji pentru promovare la locul de muncă
      Vrăji de protecție
      Vrăji pentru câștig la loterie / Vrăji pentru a rămâne însărcinată

      ReplyDelete
    3. Mulțumiri DR. WALE. Căsnicia mea fericită se transforma în tristețe. Totul mergea prost între mine și soțul meu. Eram frustrată și nu știam ce să fac. Soțul meu m-a părăsit pentru o altă femeie. Am făcut tot ce mi-a stat în putință să-l recâștig, dar totul a fost în zadar. Abia după ce cumnatul meu mi-a spus să-l contactez pe DR. WALE, mi-a spus că doar DR. WALE mă va putea ajuta să-mi recuperez soțul. L-am contactat pe DR. WALE și i-am povestit tot ce se întâmplă în căsnicia mea. Mi-a spus să-i trimit soțului meu o poză și a mea și alte câteva lucruri. Am plătit și pentru materialele necesare pentru a face vraja. DR. WALE mi-a spus că în trei zile soțul meu se va întoarce la mine. Spre cea mai mare surpriză a mea, soțul meu s-a întors două zile mai târziu. DR. WALE este cel mai bun vrăjitor. Dacă aveți nevoie de ajutor cu oricare dintre iubiții voștri, DR. WALE este omul potrivit de contactat. Îl puteți contacta prin WhatsApp SAU Viber: +2347054019402 SAU Email: drwalespellhome@gmail.com

      ReplyDelete