...
Code Block | ||
---|---|---|
| ||
var s,s1,status,statustxt; b,n; nro; begin s := restCall('https://t.skj.fi/tapahtuma/products?apikey=wont_tell_you','{"name":"taas uusi tuote"}', '', '', status, statustxt); showmessage(s+#13+inttostr(status)+#13+inttostr(statustxt)); if status=200 then begin b:= JsonNewDocFromjson(s); // b on koko dokkari n := jsongetvalue(b,'products'); // n : products elementti, joka on array yhdestä tuotteesta n := jsongetvalue(n,0,true); // n on tämän jälkeen eka alkio tuotearraysta nro := jsongetvalue(n,'id'); // otetaan vastauksesta id - tuotenumero s1 := restCall('https://t.skj.fi/tapahtuma/products/'+nro+'?apikey=wont_tell_you','', '', '', status, statustxt,'get'); showmessage(s1); // s ja s1 pitäisi olla samat b := jsonnewdoc; b := jsonaddvalue(b, 'id', nro); b := jsonaddvalue(b, 'group', 12); b := jsonaddvalue(b, 'name', 'lahden kotiin'); s := restCall('https://t.skj.fi/tapahtuma/products?apikey=wont_tell_you', b, '', '', status, statustxt); showmessage(s); end; end; |
Jatkuva toiminta
Skjscript voidaan laittaa pöyrimään taustalle silmukassa esim lähettämään muutoksia aikaajoin. Tähän pitää rakentaa myös poistumismekanismi. Jos ohjelma pyörii näkyvillä työasemassa, voidaan se hoitaa aiemmilla versiolla, mutta palveluna vaati 28.9.2018 tai uudemman version.
Code Block | ||
---|---|---|
| ||
var
postaaja;
s;
laskuri;
st;
begin
st := CreateStatus('Päivitys');
laskuri := 0;
// allaoleva showstatus palauttaa false jos käyttäjä on painanut peruuta tai skjscript
// on saanut wm_close viestin. esim process -q skjscript.exe
while showstatus(st,'Päivitän asiakasdataa ','Päivitetty '+inttostr(laskuri)) do
begin
postaaja := LuoPostaaja;
postaaja_lisaakentta(postaaja,'id','1212');
postaaja_lisaakentta(postaaja,'data','adadada');
s := postaaja_post(postaaja,'https://jotain.skj.fi/joku.php','');
logentry('vastaus'+s);
sleep(1000);
inc(laskuri);
logentry('virhe'+postaaja_virhe(postaaja));
postaaja_sulje(postaaja);
end;
closestatus(st);
end; |