FrameAppWS

<back to all web services

EjecutaCuboRQ

Requires Authentication
The following routes are available for this service:
All Verbs/Utilidades/Consultas/Cubos/Ejecucion
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class EjecutaCuboRS implements JsonSerializable
{
    public function __construct(
        /** @var array<array<string,Object>>|null */
        public ?array $DatosConsulta=null,
        /** @var int */
        public int $TotalRegistros=0,
        /** @var int */
        public int $TotalGrupos=0,
        /** @var array<Object>|null */
        public ?array $SummaryList=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['DatosConsulta'])) $this->DatosConsulta = JsonConverters::fromArray('Dictionary<String,Object>', $o['DatosConsulta']);
        if (isset($o['TotalRegistros'])) $this->TotalRegistros = $o['TotalRegistros'];
        if (isset($o['TotalGrupos'])) $this->TotalGrupos = $o['TotalGrupos'];
        if (isset($o['SummaryList'])) $this->SummaryList = JsonConverters::fromArray('Object', $o['SummaryList']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->DatosConsulta)) $o['DatosConsulta'] = JsonConverters::toArray('Dictionary<String,Object>', $this->DatosConsulta);
        if (isset($this->TotalRegistros)) $o['TotalRegistros'] = $this->TotalRegistros;
        if (isset($this->TotalGrupos)) $o['TotalGrupos'] = $this->TotalGrupos;
        if (isset($this->SummaryList)) $o['SummaryList'] = JsonConverters::toArray('Object', $this->SummaryList);
        return empty($o) ? new class(){} : $o;
    }
}

enum Lenguajes : string
{
    case ES = 'ES';
    case PT = 'PT';
    case EN = 'EN';
}

class EjecutaCuboRQ implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDVista=0,
        /** @var int */
        public int $IDPivot=0,
        /** @var array<string,Object>|null */
        public ?array $Parametros=null,
        /** @var Lenguajes|null */
        public ?Lenguajes $Lenguaje=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDVista'])) $this->IDVista = $o['IDVista'];
        if (isset($o['IDPivot'])) $this->IDPivot = $o['IDPivot'];
        if (isset($o['Parametros'])) $this->Parametros = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','Object']), $o['Parametros']);
        if (isset($o['Lenguaje'])) $this->Lenguaje = JsonConverters::from('Lenguajes', $o['Lenguaje']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDVista)) $o['IDVista'] = $this->IDVista;
        if (isset($this->IDPivot)) $o['IDPivot'] = $this->IDPivot;
        if (isset($this->Parametros)) $o['Parametros'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','Object']), $this->Parametros);
        if (isset($this->Lenguaje)) $o['Lenguaje'] = JsonConverters::to('Lenguajes', $this->Lenguaje);
        return empty($o) ? new class(){} : $o;
    }
}

PHP EjecutaCuboRQ DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Utilidades/Consultas/Cubos/Ejecucion HTTP/1.1 
Host: soluser-recaudo.sgsas.co 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"IDVista":0,"IDPivot":0,"Parametros":{"String":{}},"Lenguaje":"ES"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"DatosConsulta":[{"String":{}}],"TotalRegistros":0,"TotalGrupos":0,"SummaryList":[{}]}