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);
}