Metaservice
Statefull webservice med funktioner för att bla föda boendekalkylens gränssnitt med data och fjärrstyra gränssnittet på olika sätt. Innehåller också alla funktioner som återfinns i Applikationsservice.
Eftersom webservicen är statefull så måste anroparen vara noga med att se till att hantera cookies på korrekt sätt, se beskrivning för hur man gör i c# under dokumenationen för funktionen Initiera.
Denna webservice har stöd för att skicka med soap-headers, läs mer om det här.
Denna webservice hanterar egna inställningar via capitex_customer_config.xml och kan därmed hantera tex egna budgetsiffror.
Denna webservice kan instansiera plugins vilket innebär tex att egna budgetsiffror mm kan läsas från databas, utskrifter kan också anpassas programmatiskt via plugins.
Exempel på hur applikationen kan födas med data innan uppstart
Exemplet använder webservice-funktionerna Initiera, HaemtaIndata, TilldelaIndata. Exemplet utnyttjar också användargränssnittets inparameter CX.sessionid för att "koppla in" gränssnittet mot en befintlig session.
Exemplet ovan implementerat i c#
private
String sessionsid =
""
;
private
String server =
"https://server"
;
private
String appname =
"BoendeKalkyl"
;
private
String metaservicepath =
"services/Boende/Metaservice"
;
private
String guipath =
"BoKalkGraenssnitt"
;
protected
void
Button1_Click(
object
sender, EventArgs e) {
Metaservice ms =
new
Metaservice();
ms.CookieContainer =
new
System.Net.CookieContainer();
ms.Url = server +
"/"
+ appname +
"/"
+ metaservicepath;
ms.Credentials =
new
System.Net.NetworkCredential(
"username"
,
"password"
);
// Initiera sessionen-
Initiera init =
new
Initiera();
init.InitieraParametrar_1 =
new
InitieraParametrar();
init.InitieraParametrar_1.Fristaaende =
true
;
Sessionsinfo sesinfo = ms.Initiera(init).result;
this
.sessionsid = sesinfo.Sessionsid;
// Hämta default indata som sätts vid uppstart av kalkylen...
// Detta är mycket enklare än att initiera hela datastrukturen själv från scratch...
clsIn indata;
indata = ms.HaemtaIndata(
new
HaemtaIndata()).result;
// Ändra på önskad indata för att få in egna värden som tex priset på objekt 0 och förnamn på person 0.
indata.Bostaeder[0].Pris_Kr = 100000;
((clsPersonMedPersonuppgifter)indata.Personer[0]).Personuppgifter.Foernamn =
"Per"
;
TilldelaIndata tilldelaindata =
new
TilldelaIndata();
tilldelaindata.clsIn_1 = indata;
ms.TilldelaIndata(tilldelaindata);
// Redirecta till applikationen (användaren får då logga in med sitt egna användarnamn och lösenord).
this
.Response.Redirect(server +
"/"
+ appname +
"/"
+ guipath +
"?CX.sessionid="
+ sessionsid);
}