If you have your source data in postgresql, you can also use the following handy function to generate uids directly from the database:
CREATE OR REPLACE FUNCTION uid() RETURNS text AS $$ SELECT substring('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' FROM (random()*51)::int +1 for 1) || array_to_string(ARRAY(SELECT substring('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ0123456789' FROM (random()*61)::int + 1 FOR 1) FROM generate_series(1,10)), '') $$ LANGUAGE sql; for example: select *,uid() from myorgunits; Will list your table together with some newly minted uids. On 25 May 2016 at 13:01, Jason Pickering <jason.p.picker...@gmail.com> wrote: > Hi Sergio, > The easier way to do this is to generate the UID prior to importing > everything. You can do this pretty easily with the system with the > following command > > https://play.dhis2.org/demo/api/system/uid?limit=3 > > Or they can be generated externally pretty easily. Here is some R code , > but I am sure there are ways to do this in other languages as well. > > generateUID<-function(codeSize=11){ > #Generate a random seed > runif(1) > allowedLetters<-c(LETTERS,letters) > allowedChars<-c(LETTERS,letters,0:9) > #First character must be a letter according to the DHIS2 spec > firstChar<-sample(allowedLetters,1) > otherChars<-sample(allowedChars,codeSize-1) > > uid<-paste(c(firstChar,paste(otherChars,sep="",collapse="")),sep="",collapse="") > return(uid)} > > The last option is to post these level by level and get the UID which was > generated for the orgunit. The tricky part may be to get the first parent > ID, but once you have that, it should be pretty easy. > > From my experience however, generating these prior to importing them is > much easier and will allow you to edit things for instance, in your GIS > software and then import them into DHIS2. > > Regards, > Jason > > > On Wed, May 25, 2016 at 1:54 PM, Sergio Valenzuela < > sergio.valenzu...@ehas.org> wrote: > >> Thanks Morten, yes, we were trying to create a new root and we were >> missing that step. >> >> My question now is: In the "parent" object included in >> "organisationUnits", is it possible to swap the attribute "id" to "name" >> (or something you know when you are creating the parents)? Otherwise, how >> can be done the import of a whole org unit hierarchy (in a single json) >> when you don't know the "id" of the "parents"? >> >> I attached an image pointing the part of the json I'm talking about. >> >> >> >> *Sergio Valenzuela* >> Fundación EHAS >> Telemedicina para países en desarrollo -* www.ehas.org >> <http://www.ehas.org/>* >> E.T.S.I. de Telecomunicación A.101-9L. Ciudad Universitaria 30, 28040 >> Madrid - España >> Tlfno. (+34) 91 488 87 41: (+34) 687 67 17 62 >> >> >> >> 2016-05-25 13:13 GMT+02:00 Morten Olav Hansen <mor...@dhis2.org>: >> >>> Hi Sergio >>> >>> So you are creating a new root? Could it be that your user is attached >>> to a different org unit, and so the problem is that you can't see them? >>> >>> Maybe you could verify in the database, or using the web-api? >>> /api/organisationUnits.json?filter=name:like:abc >>> >>> -- >>> Morten Olav Hansen >>> Senior Engineer, DHIS 2 >>> University of Oslo >>> http://www.dhis2.org >>> >>> On Wed, May 25, 2016 at 6:06 PM, Sergio Valenzuela < >>> sergio.valenzu...@ehas.org> wrote: >>> >>>> Hello devs, >>>> >>>> We are trying to create a whole org unit hierarchy through the new API >>>> resource /api/23/metadata . >>>> During the process, we realized there should be some kind of problem >>>> when we tried to create the parent org unit (the parent of the whole >>>> hierarchy), because even If the answer from the server is 200 OK once we >>>> sent the POST and with a GET we can verify that the org units are created >>>> successfully, no org units are appearing on Maintenance App. We are using >>>> the same version and build as in demo server (version 2.23 and build >>>> 22969). >>>> We tried the same in demo server with the same result. >>>> >>>> I attached our JSON and the url we were doing the POST request: >>>> >>>> - https://play.dhis2.org/demo/api/23/metadata >>>> >>>> <https://www.google.com/url?q=https%3A%2F%2Fplay.dhis2.org%2Fdemo%2Fapi%2F23%2Fmetadata&sa=D&sntz=1&usg=AFQjCNFEcEvpUIBy7DQX7KNTUvGRw7nObw> >>>> >>>> Besides, we tried to create the parent org unit of the whole hierarchy >>>> through the Maintenance interface with the same result. Apparently, it is >>>> created but not shown after on Maintenance App. (We made a GET to >>>> http://localhost:8080/api/metadata?assumeTrue=false&organisationUnits=true >>>> and we verified that the org unit was created) >>>> >>>> Tell me If I'm doing something wrong here or If this issue was already >>>> reported. >>>> >>>> Best Regards! >>>> >>>> *Sergio Valenzuela* >>>> Fundación EHAS >>>> Telemedicina para países en desarrollo -* www.ehas.org >>>> <http://www.ehas.org/>* >>>> E.T.S.I. de Telecomunicación A.101-9L. Ciudad Universitaria 30, 28040 >>>> Madrid - España >>>> Tlfno. (+34) 91 488 87 41: (+34) 687 67 17 62 >>>> >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: https://launchpad.net/~dhis2-devs >>>> Post to : dhis2-devs@lists.launchpad.net >>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>> More help : https://help.launchpad.net/ListHelp >>>> >>>> >>> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~dhis2-devs >> Post to : dhis2-devs@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~dhis2-devs >> More help : https://help.launchpad.net/ListHelp >> >> > > > -- > Jason P. Pickering > email: jason.p.picker...@gmail.com > tel:+46764147049 > > _______________________________________________ > Mailing list: https://launchpad.net/~dhis2-devs > Post to : dhis2-devs@lists.launchpad.net > Unsubscribe : https://launchpad.net/~dhis2-devs > More help : https://help.launchpad.net/ListHelp > >
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp