Σύμφωνα με το
θέλει όρισμα
"KEYVALUE"
που αναφέρετε στο ID της εγγραφής
π.χ το παρακάτω γυρνά αποτέλεσμα:
var ws=
{
"service": "selectorFields",
"TABLENAME": "ITEM",
"KEYNAME": "MTRL",
"KEYVALUE":X.SQL("SELECT TOP 1MTRL FROM MTRL WHERE COMPANY=:X.SYS.COMPANY AND SODTYPE=51 AND ISACTIVE=1",null),
"RESULTFIELDS":"CODE,NAME,CODE1,MTRUNIT1,VAT"
}
X.WARNING(X.WEBREQUEST(JSON.stringify(ws)));
Αν όμως πάω να ζητήσω να φέρει πολλά mtrl στο keyvalue όπως στο παρακάτω, θα βγάλει σφάλμα.
var ws=
{
"service": "selectorFields",
"TABLENAME": "ITEM",
"KEYNAME": "MTRL",
"KEYVALUE":JSON.parse(X.GETSQLDATASET("SELECT TOP 10 MTRL FROM MTRL WHERE COMPANY=:X.SYS.COMPANY AND SODTYPE=51 AND ISACTIVE=1",null)
.JSON)
.map(function(item){return item.MTRL;})
.join(","),
"RESULTFIELDS":"CODE,NAME,CODE1,MTRUNIT1,VAT"
}
X.WARNING(X.WEBREQUEST(JSON.stringify(ws)));
Αλλά από ότι βλέπω έχει όριο τις 150 εγγραφές.
Και οι 2 παραπάνω έχουν νόημα πάνω σε μια σελίδα τύπου S360, όπου έχεις π.χ ένα combo box που γεμίζει καθώς ο χρήστης πληκτρολογεί και τον βοηθάμε να βρει την εγγραφή.
Αν το θέλεις για να μεταφέρεις δεδομένα από το softone κάπου αλλού, δεν είναι αυτές που θες.
Για την ανανέωση, έχω την εντύπωση ότι οι servers του Azure, κρατούν σε cache τα αποτελέσματα, και αν η εντολή εισόδου έχει απαντηθεί πρόσφατα, τότε παίρνεις την πρόσφατη απάντηση του Azure server.
Για να ανανεωθεί ίσως χρειαστεί και call στην s1services?refresh