Descrição

Fornece um objeto utilizado na construção de Painéis ou Gráficos.

Este objeto pode ser utilizado na construção de serviços REST utilizados no Dashboard.


New()

Sintaxe:

CorePanel():New()

Descrição:

Método construtor da classe.

Local oCorePanel := CorePanel():New() 



SetFields()

Sintaxe:

CorePanel():SetFields(aCampos)

Descrição:

Método que define os campos que serão retornados no Json do serviço.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
aCamposArrayArray que contém o De / Para dos campos que serão apresentados no serviço
X
Local oCorePanel := CorePanel():New() 
Local aCampos 	 := {} 
 
Aadd(aCampos, {“code”, “A1_CODIGO”}) 
Aadd(aCampos, {“name”, “A1_NOME”}) 
oCorePanel:SetFields(aCampos) 



SetQuery()

Sintaxe:

CorePanel():SetQuery(cQuery)

Descrição:

Método que define a query que será utilizada no serviço.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cQueryCaracteresRecebe a query que será executada. 
X
Local oCorePanel := CorePanel():New() 
Local cQuery 	 := “” 

cQuery := “ SELECT A1_COD, A1_NOME FROM " + RetSqlName("SA1") + " SA1 ”
oCorePanel:SetQuery(cQuery)



SetWhere()

Sintaxe:

CorePanel():SetWhere(cWhere)

Descrição:

Método que define a clausula where que será no método SetQuery().

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cWhereCaracteresWhere que será utilizado na query enviada para o método SetQuery()  


Local oCorePanel := CorePanel():New() 
Local cQuery 	 := “ SELECT A1_COD, A1_NOME FROM "+ RetSqlName("SA1") + " SA1 ”
Local cWhere 	 := “” 

oCorePanel:SetQuery(cQuery)

cWhere := “ SA1.D_E_L_E_T = ‘ ‘ ” 
oCorePanel:SetWhere(cWhere)



SetPage()

Sintaxe:

CorePanel():SetPage(nPage)

Descrição:

Método que atribui o número da página em que o usuário vai navegar.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
nPageNuméricoNúmero da página que será apresentada para o usuário1

Local oCorePanel := CorePanel():New()
Local nPage 	 := 8 

oCorePanel:SetPage(nPage)



SetPageSize()

Sintaxe:

CorePanel():SetPageSize(nPageSize)

Descrição:

Método que atribui a quantidade máxima de registros que serão exibidos por página.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
nPageSizeNuméricoQuantidade máxima de registros apresentados por página para o usuário.10

Local oCorePanel := CorePanel():New()
Local nPageSize	 := 20

oCorePanel:SetPageSize(nPageSize)



DefFields()

Sintaxe:

CorePanel():DefFields(lConvProt, cField)

Descrição:

Método que efetua a conversão entre campos do Objeto e Protheus

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
lConvProtLógicoDefine se deve converter os campos para padrão Protheus.T.

cFieldCaracteresCampo que será convertido


Local oCorePanel := CorePanel():New()

oCorePanel:DefFields(.T.,"CAMPO")



GetDataType()

Sintaxe:

CorePanel():GetDataType(lConvProt, cField)

Descrição:

Retorna o tipo do dado de um determinado campo.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
lConvProtLógicoDefine se deve converter os campos para padrão Protheus.T.

cFieldCaracteresCampo que será convertido


Local oCorePanel := CorePanel():New()
Local dData

If oCorePanel:GetDataType(.T.,"CAMPO") == "D"
	dData := Date()
Endif



SetFieldsFilt()

Sintaxe:

CorePanel():SetFieldsFilt(cFields) 

Descrição:

Método que define quais campos serão retornados pelo serviço.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cFieldsCaracteresCampos que serão retornados no JSON.
X
Local oCorePanel := CorePanel():New()
Local cFields 	 := "order, totValue, product"

oCorePanel:SetFieldsFilt(cFields) 



ToObjectJson()

Sintaxe:

CorePanel():ToObjectJson()

Descrição:

Método que retorna o JSON serializado.

Local oCorePanel := CorePanel():New()
Local lRet 		 := .T. 
Local cError := “Erro na requisição” 
 
If lRet 
	Self:SetResponse( oCorePanel:ToObjectJson())
Else 
	cError := oCorePanel:GetJsonError() 
	SetRestFault( 500,  EncodeUtf8(cError) ) 
EndIf 



ToSingleObject()

Sintaxe:

CorePanel():ToSingleObject()

Descrição:

Método que retorna um JSON serializado para apenas um objeto.

Utilizado em requisições do tipo GET que retornam informações de apenas um registro.

Local oCorePanel := CorePanel():New()
Local lRet 		 := .T. 
Local cError := “Erro na requisição” 
 
If lRet 
	Self:SetResponse(oCorePanel:ToSingleObject()) 
Else 
	cError := oCorePanel:GetJsonError() 
	SetRestFault( 500,  EncodeUtf8(cError) ) 
EndIf 



GetJsonObject()

Sintaxe:

CorePanel():GetJsonObject()

Descrição:

Método que retorna o objeto JSON da classe

Local oCorePanel := CorePanel():New()
Local oJson

oJson:= oCorePanel:GetJsonObject()

If oJson['items'] != Nil
	...
Endif



SetApiQstring()

Sintaxe:

CorePanel():SetApiQstring(aQueryString)

Descrição:

Método que define os campos (Retornados pelo Json), page (página que será apresentada) e pagesize (Quantidade máxima de registros por página) e filtros.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
aQueryStringArrayRecebe o filtro a ser utilizado quando retornado o Json


Local oCorePanel 	:= CorePanel():New()
Local aQueryString 	:= {} 

aAdd(aQueryString, {“fields”	, “order, totValue”	}) 
aAdd(aQueryString, {“page”		, 10				}) 
aAdd(aQueryString, {“pagesize”	, 5					}) 

oCorePanel:SetApiQString(aQueryString) 



SetApiFilter()

Sintaxe:

CorePanel():SetApiFilter(aFilter)

Descrição:

Método que atribui um filtro de pesquisa.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
aFilterArrayArray com expressões de filtro que serão utilizadas
X
Local oCorePanel 	:= CorePanel():New()
Local aFilter		:= {} 

aAdd(aFilter, {“A1_COD = '000001'”}) 

oCorePanel:SetApiFilter(aFilter)



GetApiFilter()

Sintaxe:

CorePanel():GetApiFilter()

Descrição:

Método que retorna o filtro de pesquisa.

Local oCorePanel 	:= CorePanel():New()

oCorePanel:GetApiFilter()



BuildJson()

Sintaxe:

CorePanel():BuildJson()

Descrição:

Método que responsável por construir o objeto JSON.

Local oCorePanel  := CorePanel():New() 
 
Self:SetContentType("application/json") 
 
oCorePanel:SetQuery(cQuery) 
oCorePanel:SetWhere(cWhere) 
oCorePanel:SetFields(aCampos) 
oCorePanel:SetApiQstring(aQueryString) 
oCorePanel:BuildJson() 



SetJson()

Sintaxe:

CorePanel():SetJson(lHasNext, aItems)

Descrição:

Método que responsável por atribuir um objeto JSON, de acordo com o contrato estabelecido pela TOTVS, contento o [items] e o [hasNext].

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
lHasNextLógicoIndica se o objeto possui próxima página..T.

aItemsArrayArray com os valores do objeto.


Local aItems 		:= {} 
Local lHasNext 		:= .T. 
Local oCorePanel  	:= CorePanel():New() 
Local oItem 		:= JsonObject():New()
 
If (cTemp)->(Eof()) 
	lHasnext := .F. 
EndIf 
 
aAdd(aItems, oItem) 
oCorePanel:SetJson(lHasNext, aItems) 



SetTable()

Sintaxe:

CorePanel():SetTable(cAlias)

Descrição:

Método que recebe o alias que será responsável pela geração do JSON.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cAliasCaractereAlias recebido para a geração do JSON.
X
Local oCorePanel := CorePanel():New() 
Local cAlias 	 := GetNextArea() 
 
oCorePanel:SetTable(cAlias) 
 



SetUpsertData()

Sintaxe:

CorePanel():SetUpsertData(cAlias, cIndex, cBody)

Descrição:

Método que efetua a inclusão ou alteração de registros.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cAliasCaractereAlias recebido para a geração do JSON.
X
cIndexCaractereÍndice utilizado na busca.


cBodyCaractereJson recebido no Body da mensagem.
X
Local oCorePanel := CorePanel():New() 

If oCorePanel:SetUpsertData(cAlias, Nil, cBody)
	Self:SetResponse( EncodeUtf8("Registro incluído com sucesso"))
Else
	SetRestFault( 500,  EncodeUtf8("Falha ao converter o arquivo.") )
Endif 



Destroy()

Sintaxe:

CorePanel():Destroy()

Descrição:

Método responsável por destruir o objeto.

Local oCorePanel := CorePanel():New() 

If oCorePanel:SetUpsertData(cAlias, Nil, cBody)
	Self:SetResponse( EncodeUtf8("Registro incluído com sucesso"))
Else
	SetRestFault( 500,  EncodeUtf8("Falha ao converter o arquivo.") )
Endif 

oCorePanel:Destroy()



SetIndexKey()

Sintaxe:

CorePanel():SetIndexKey(cIndexFather)

Descrição:

Método que atribui a ordenação do Alias principal.

Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
cIndexFatherCaractereOrdem utilizada no alias


Local oCorePanel := CorePanel():New() 

//Ordem Crescente (ASC)
oCorePanel:SetIndexKey("A1_NOME")
//Ordem Decrescente (DESC)
oCorePanel:SetIndexKey("-A1_NOME")



SetPOHeader()

Sintaxe:

CorePanel():SetPOHeader(aFields)

Descrição:

Método responsável por retornar um Array conforme esperado na propriedade p-columns do componente Table da biblioteca de componentes PO-UI


Parâmetros:

NomeTipoDescriçãoDefaultObrigatórioReferência
aFieldsArray

 Array com os dados do property e do label.

aFields[1, n] = Property

aFields[2, n] = Label - Descrição apresentada na tabela.

aFields[3, n] = Determina se a propriedade Action possui um link para o próximo nivel da visão.

aFields[4, n] = Formato




Local aFields 	 := {}
Local aItems     := {}
Local oResponse	 :=	JsonObject():New()
Local oCorePanel := CorePanel():New()

aAdd(aFields, { "A1_COD"	, "Código"		,"Link"	})
aAdd(aFields, { "A1_LOJA"	, "Loja"				})
aAdd(aFields, { "A1_NOME"	, "Nome"				})
aAdd(aFields, { "total"		, "Total Faturado"		})

aItems := oCorePanel:SetPOHeader(aFields)

oResponse["items"]      := aItems

Self:SetResponse( EncodeUtf8(oResponse:ToJson()))