1

Read a lot about MUMPS to XML / C# TCP/IP connections but it is not what I am looking for. We have an old MUMPS / MSM server from a customer of us who wants to be converted to a newer DB (read our software (MSSQL)).

Unfortunately we can't find the right way to export the data of this MUMPS db to a XML / Readable file.

We have root Access to the system and the database is a DATABASE.MSM file but it's not readable. The MUMPS Software is a M.EXE which is started using a BAT file.

What is the right way to get out the GLOBALS in readable code like XML?

Joey Erdogan
  • 184
  • 1
  • 13
  • It is complicated to describe how to do it if you don't know MUMPS language and how to run it there. Easier will be to find somebody who will do it for you. For MUMPSters it will not be so difficult. – DAiMor Sep 07 '18 at 13:17

2 Answers2

1

The general export format from Mumps Databases is called GO (Global Output). Mumps is a NoSQL database; and thus does not include schema with the data.

Are you sure you want to move the application to an entirely new technology stack? You can go with an open source M implementation like YottaDB, widely used in Banking and Healthcare.

Sam Habiel
  • 517
  • 3
  • 9
  • Thanks, Will check that one out. Thing is this MUMPS DB is from an old veterinary who will be migrated from their old prehistoric database to our MSSQL Application. In InterSystems Caché we were able to do a OBJ.Export to make it XML but in MUMPS this feature is not included i think. – Joey Erdogan Sep 14 '18 at 07:33
  • Got no luck, Now i see some GLO files with text in it, readable for me. How can i get GLO files out of MSSM – Joey Erdogan Sep 18 '18 at 07:25
  • Please ask on comp.lang.mumps. I doubt anybody who has experience on MSM ever checks StackOverflow. – Sam Habiel Sep 19 '18 at 12:05
1

You can save global to disk using D ^%GS (Global Save) or D ^%FSG (Fast Global Save) the format of these files is the same as the globals in MSM:

^UTILITY("%ER",52816,0)="1" 
^UTILITY("%ER",52816,1,0)="$ZE=^%ET" 
^UTILITY("%ER",52816,1,1)="$H= 
^UTILITY("%ER",52816,1,111)="%ERR("3")=2" 
^UTILITY("%ER",52816,1,112)="%ERR("4")=3" 
^UTILITY("%ER",52816,1,112)="%ERR("5")=4" 
^UTILITY("%ER",52816,1,112)="%ERR("6")=5"

Output is usually to 51 for disk and you can use * to select all Globals.

Once you have them as text files, it's going to be up to you to parse the results into something that resembles relational data for import into an RDBMS.

DaveShaw
  • 52,123
  • 16
  • 112
  • 141
  • Thanks Dave, The thing is i can not fill in commands as i have some kind of MSM Console where i can only choose pre defined options (1 to 13) etc. – Joey Erdogan Oct 10 '18 at 08:17