Page 1 of 1

sync_universe

Posted: March 14th, 2018, 11:22 am
by josue19
Hello Good morning, my name is Byron, I am currently working on a modernization project in place where I work and we are going to do interviews with tablets, I have prepared a server with apache and xamp for the service and I did tests of lifting and synchronization, but I am trying to synchronize a universe of data in an example that brings cspro ("Synchronization In Logic") in which I only want to synchronize a specific home, I only use an id, there are no compilation errors but it does not synchronize my universe either. please I need you to give me some idea of how to make it work, I attach the code that makes it.

if syncconnect(CSWeb,"https://192.168.0.101:8080/survey/api") then
string assignmentUniverse = maketext("%600d",HOUSEHOLD_NUMBER);
syncdata(BOTH,HOUSEHOLDQUESTIONNAIRE_DICT,assignmentUniverse);

syncdisconnect();

endif;

Re: sync_universe

Posted: March 14th, 2018, 11:27 am
by josh
The problem is most likely with the "%600d". This is going to make a text string that is padded with spaces so that it is 600 characters long. You should make the length of this match the length of the household number. In the synchronization in logic example the household number field is 3 characters long so you would use "%3d" to get a string the same length.

Re: sync_universe

Posted: March 14th, 2018, 1:22 pm
by josue19
I change the value to 3 and compile and it still does not synchronize. "%3d",
in the sync help the following appears:

"By providing an optional string expression for the sync_universe argument, you can limit the cases that are transferred. The universe is matched against the ID items of each of the cases. Only cases whose ID items concatenated together match the universe will be transferred. For example, if the universe is "123" then cases with IDs "1234" and "1235" would be synced but a case with IDs "2345" would not."

Example 2
if syncconnect(Bluetooth) then

// sync data for only the province and district assigned to the interviewer
string assignmentUniverse = maketext("%02d%02d",ASSIGNED_PROVINCE,ASSIGNED_DISTRICT);
syncdata(BOTH,CENSUS_DICT,assignmentUniverse);

syncdisconnect();

endif;

Re: sync_universe

Posted: March 14th, 2018, 1:52 pm
by josh
Post your application and I will take a look at it.

Re: sync_universe

Posted: March 14th, 2018, 1:59 pm
by josue19
Thank you very much.

Re: sync_universe

Posted: March 14th, 2018, 2:04 pm
by josh
The variable HOUSEHOLD_NUMBER has not been set to anything. By default it is blank so you are using a blank universe which does not match any of your cases. You need to set it to the id of the household you want to sync.

Re: sync_universe

Posted: March 14th, 2018, 3:15 pm
by josue19
Could you please explain me with a practical example with the application that you send.

Re: sync_universe

Posted: March 14th, 2018, 4:02 pm
by josh
It depends what you want to do. If you want to only sync household number 3 then you would do something like:

HOUSEHOLD_NUMBER = 3;
string assignmentUniverse = maketext("%3d",HOUSEHOLD_NUMBER);
syncdata(BOTH,HOUSEHOLDQUESTIONNAIRE_DICT,assignmentUniverse);

Why do you need to use a universe with syncdata? Most of the time you do not need it.

Re: sync_universe

Posted: March 14th, 2018, 5:15 pm
by josue19
Thank you very much.
what happens is that we have a survey methodology by sector, one sector is assigned per interviewer but if it is very large with many households, another interview must be sent to support it, in which case the base is shared via bluetoth to work on that, and avoid duplication of information, this is just a proposed strategy that we intend to prove we do not know if it is possible to carry it out.