Disponibiliza uma Pone a disposición una API REST no en el Dashboard para visualizar um un Card.
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "TOTVS.CH" #INCLUDE "RESTFUL.CH" //------------------------------------------------------------------- /*/{Protheus.doc} Exemplo1 ExemploEjemplo de API de integraçãointegración de Cards @author Squad CRM & FaturamentoFacturación @since 26/03/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- WSRESTFUL Exemplo1 DESCRIPTION "Exemplo 1" WSDATA Fields AS STRING OPTIONAL WSDATA Order AS STRING OPTIONAL WSDATA Page AS INTEGER OPTIONAL WSDATA PageSize AS INTEGER OPTIONAL WSMETHOD POST itemsDetails ; DESCRIPTION "CarregaCarga oslos Itensítems Utilizados para MontagemMontaje dodel PainelPanel" ; WSSYNTAX "/cards/itemsDetails/{Order, Page, PageSize, Fields}" ; PATH "/cards/itemsDetails"; PRODUCES APPLICATION_JSON WSMETHOD GET cardFilter; DESCRIPTION "Disponibiliza osPone a disposición los campos que poderãose podrán serutilizar utilizadosen noel filtro dodel Card" ; WSSYNTAX "/cards/cardFilter/" ; PATH "/cards/cardFilter"; PRODUCES APPLICATION_JSON WSMETHOD GET cardInfo ; DESCRIPTION "CarregaCarga aslas informaçõesinformaciones dodel PainelPanel" ; WSSYNTAX "/cards/cardInfo/" ; PATH "/cards/cardInfo"; PRODUCES APPLICATION_JSON WSMETHOD GET fieldsInfo ; DESCRIPTION "Carrega os campos que podem que ser utilizados" ; WSSYNTAX "/cards/fieldsInfo/" ; PATH "/cards/fieldsInfo"; PRODUCES APPLICATION_JSON ENDWSRESTFUL //------------------------------------------------------------------- /*/{Protheus.doc} POST itemsDetails CarregaCarga oslos Itensítems Utilizadosutilizados para MontagemMontaje dodel PainelPanel @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- WSMETHOD POST itemsDetails WSRECEIVE Order, Page, PageSize, Fields WSSERVICE Exemplo1 Local aHeader := {} Local aRet := {} Local cError := "ErroError en nael Requisiçãorequerimiento" Local lRet := .T. Local oCoreDash := CoreDash():New() Self:SetContentType("application/json") aHeader := {; {"num" , "Numero" },; {"prefixo" , "PrefixoPrefijo" },; {"parcela" , "LojaTienda" },; {"tipo" , "Tipo" },; {"naturez" , "NaturezaNaturaleza" }; } //ChamaLlama ala funçãofunción responsavelresponsable por montar ala ExpressãoExpresión SQL aRet := MntQuery() //Define ala Query padrãoestándar utilizada noen el ServiçoServicio oCoreDash:SetQuery(aRet[1]) oCoreDash:SetWhere(aRet[2]) oCoreDash:SetFields(DePara()) oCoreDash:SetApiQstring(Self:aQueryString) lRet := oCoreDash:BuildJson() If lRet oCoreDash:SetPOHeader(aHeader) Self:SetResponse( oCoreDash:ToObjectJson()) Else cError := oCoreDash:GetJsonError() SetRestFault( 500, EncodeUtf8(cError) ) EndIf oCoreDash:Destroy() aSize(aRet, 0) aSize(aHeader, 0) Return lRet //------------------------------------------------------------------- /*/{Protheus.doc} GET cardFilter RetornaDevuelve oslos campos que poderãose serpodrán filtradosfiltrar @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- WSMETHOD GET cardFilter WSSERVICE Exemplo1 Local aHeader := {} Local oCoreDash := CoreDash():New() Local oResponse := JsonObject():New() aHeader := {; {"num" , "Numero" },; {"prefixo" , "PrefixoPrefijo" },; {"parcela" , "LojaTienda" },; {"tipo" , "Tipo" },; {"naturez" , "NaturezaNaturaleza" }; } oResponse["items"] := oCoreDash:SetPOHeader(aHeader) Self:SetResponse( EncodeUtf8(oResponse:ToJson())) Return .T. //------------------------------------------------------------------- /*/{Protheus.doc} GET cardInfo Método para retornardevolver oslos dadosdatos dodel Card @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- WSMETHOD GET cardInfo WSRESTFUL Exemplo1 Local aFilter := {} Local cWhere := "" Local nFiltro := 0 Local oCoreDash := CoreDash():New() Local oResponse := JsonObject():New() //ConverteConvierte oslos campos utilizados naen la consulta para oslos campos utilizados en noel card. oCoreDash:SetFields(DePara()) //ConverteConvierte oel Filtro informado noen el parametroparámetro Query String. oCoreDash:SetApiQstring(Self:aQueryString) aFilter := oCoreDash:GetApiFilter() For nFiltro := 1 to Len(aFilter) cWhere += " AND " + aFilter[nFiltro][1] Next RetCardInfo( @oResponse ) self:SetResponse( EncodeUtf8(FwJsonSerialize(oResponse,.T.,.T.)) ) oResponse := Nil FreeObj( oResponse ) oCoreDash:Destroy() FreeObj( oCoreDash ) Return .T. //------------------------------------------------------------------- /*/{Protheus.doc} GET fieldsInfo CarregaCarga oslos campos que podemse quepueden ser utilizadosutilizar @param cSelect, Caractere, Campos que serãose devolverán retornadosen noel SELECT @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- WSMETHOD GET fieldsInfo WSSERVICE Exemplo1 Local aItems := {} Local oResponse := JsonObject():New() Local oCoreDash := CoreDash():New() aAdd(aItems, { "total" , "Total apor Recebercobrar:" }) aAdd(aItems, { "antigo" , "Titulo maismás Antigoantiguo:" }) aAdd(aItems, { "saldo" , "Saldo Total:" }) /*Retorna um Objeto no formato de Value e Label*/ oResponse["items"] := oCoreDash:SetPOCombo(aItems) Self:SetResponse( EncodeUtf8(oResponse:ToJson())) Return .T. //------------------------------------------------------------------- /*/{Protheus.doc} MntQuery Monta ala query responsávelresponsable por trazertraer oslos itensítems utilizados en noel PainelPanel @param cSelect, Caractere, Campos que serãose devolveran retornadosen noel SELECT @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- Static Function MntQuery(cCampos) Local cQuery Local cWhere Default cCampos := " SE1.E1_PREFIXO, SE1.E1_NUM, SE1.E1_PARCELA, SE1.E1_TIPO, SE1.E1_NATUREZ " cQuery := " SELECT " + cCampos + " FROM " + RetSqlName("SE1") + " SE1 " cWhere := " SE1.E1_FILIAL = '" + xFilial("SE1") + "' " cWhere += " AND SE1.D_E_L_E_T_ = ' ' " Return {cQuery, cWhere} //------------------------------------------------------------------- /*/{Protheus.doc} DePara EfetuaRealiza ola Conversãoconversión entre oslos atributos objetosobjeto dodel Json ey oslos campos utilizados en nala Consulta @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- Static Function DePara() Local aCampos := {} aCampos := {; {"prefixo" , "SE1.E1_PREFIXO" },; {"num" , "SE1.E1_NUM" },; {"parcela" , "SE1.E1_PARCELA" },; {"tipo" , "SE1.E1_TIPO" },; {"naturez" , "SE1.E1_NATUREZ" }; } Return aCampos //------------------------------------------------------------------- /*/{Protheus.doc} GET RetCardInfo RetornaDevuelve oslos dadosdatos que se poderãopodrán serpresentar apresentadosen noel painelpanel @author Squad CRM & FaturamentoFacturación @since 28/07/2020 @version 12.1.27 /*/ //------------------------------------------------------------------- Static Function RetCardInfo( oResponse ) Local oItem Local aItems := {} oItem := JsonObject():New() oItem["total"] := 'R$ 526.232.123,23' oItem["antigo"] := '02/04/2020' oItem["salto"] := 'R$ 265.235.201,33' aAdd(aItems, oItem) oResponse['hasNext'] := 'false' oResponse["items"] := aItems Return Nil |
...
Consulte la documentación del Consultar a documentação do CoreDash.