Add to ZPM
Generate massive amounts of fake data for Intersystems IRIS
The language of data is according to configuration of your Caché (Now works with Pt-Br and En-Us(Default)).
To install cosFaker, you just need to import the package cosFaker.vX.X.X.xml file.
You can go to Management Portal -> System Explorer -> Classes -> Import and select the XML file or just drag the file over Studio.
Also, if you like terminal like me, execute:
Do $system.OBJ.Load("yourpath/cosFaker.vX.X.X.xml","ck")
To install using Docker. Follow this instructions:
Open terminal and clone/git pull the repo into any local directory
$ git clone https://github.com/henryhamon/cosfaker.git
Open the terminal in this directory and run:
$ docker-compose build
Run the IRIS container with your project:
$ docker-compose up -d
Open InterSystems IRIS terminal:
$ docker-compose exec iris iris session iris
USER>zn "IRISAPP"
IRISAPP>Write ##class(cosFaker.Name).FullName()
You can use on Populate event
Method OnPopulate() As %Status [ ServerOnly = 1 ]
{
Set ..Login = ##class(cosFaker.Internet).UserName("John","Doe")
Set ..Url = ##class(cosFaker.Internet).DomainWord()
}
Or on a simple Set
Set ..Name = ##class(cosFaker.Name).FullName()
You can generate data directly on a table
Do ##class(cosFaker.SQL).Insert("Sample_Data.Clients","City,Name,Salary","city SC,name 2,price 1000 2000 2 R$",2)
//Same as:
//INSERT INTO Sample_Data.Clients (City,Name,Salary) VALUES ('Celso Ramos','Luiggi Dias Nunes Saraiva','R$1654.30')
//INSERT INTO Sample_Data.Clients (City,Name,Salary) VALUES ('Nova Veneza','Fabiano da Costa','R$1255.13')
You can generate data on JSON string or in an object, only passing a JSON string as shown above.
Examples showing JSON strings populated:
Write ##class(cosFaker.JSON).GetDataJSONFromJSON("{Nome:'name 2',Cidade:'city SC',CPF:'cpf 1',Description:'slug ""person sample example"" ;'}")
// {
// "CPF":"661.254.048-62",
// "Cidade":"Brunópolis",
// "Nome":"Jonathan Ribeiro Ribeiro",
// "Description":"person;sample;example"
// }
//Suppose you want a person with name, street, phone and his 3 preferred Pokemons
Write ##class(cosFaker.JSON).GetDataJSONFromJSON("{person:['name','street','phone','3 pokemon']}")
// {"person":
// [
// "Yango Nogueira",
// "Viela General Sirineu Nogueira",
// "(44) 0968-2926",
// ["Bayleef","Haunter","Golurk"]
// ]
// }
And example showing Object populated:
Set person = ##class(cosFaker.JSON).GetDataOBJFromJSON("{name:'name 2',birth:'date',profession:'profession',pokemons:'3 pokemon'}",.tSC)
Write person.name
// Flávio SilveiraSet listOfPokemons = person.pokemons
Write listOfPokemons.GetAt(1)
// Diancie
Write listOfPokemons.Count()
// 3